JP7495912B2 - Gaming Machines - Google Patents

Gaming Machines Download PDF

Info

Publication number
JP7495912B2
JP7495912B2 JP2021153823A JP2021153823A JP7495912B2 JP 7495912 B2 JP7495912 B2 JP 7495912B2 JP 2021153823 A JP2021153823 A JP 2021153823A JP 2021153823 A JP2021153823 A JP 2021153823A JP 7495912 B2 JP7495912 B2 JP 7495912B2
Authority
JP
Japan
Prior art keywords
game
special
state
time
random number
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
Application number
JP2021153823A
Other languages
Japanese (ja)
Other versions
JP2023045428A (en
Inventor
功太郎 山口
純也 杉山
智裕 久保田
純一 田村
将吾 吉岡
暢 西澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Heiwa Corp
Original Assignee
Heiwa Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Heiwa Corp filed Critical Heiwa Corp
Priority to JP2021153823A priority Critical patent/JP7495912B2/en
Publication of JP2023045428A publication Critical patent/JP2023045428A/en
Application granted granted Critical
Publication of JP7495912B2 publication Critical patent/JP7495912B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Slot Machines And Peripheral Devices (AREA)
  • Pinball Game Machines (AREA)

Description

本発明は、遊技者に遊技上の利益を付与するか否かを抽選により決定する遊技機に関する。 The present invention relates to a gaming machine that determines by lottery whether or not to award a gaming advantage to a player.

遊技機としてのパチンコ機では、遊技者のハンドル操作により遊技盤内の遊技領域に向かって遊技球が発射され、遊技領域を流下した遊技球が始動口に入球したことを条件に特別図柄に係る抽選が実行される。そして、特別図柄表示器に大当たりであることを示す特定の特別図柄が停止表示されると、通常の遊技に比べて遊技者に有利な大役遊技が開始され、遊技者は多くの賞球(遊技媒体、遊技価値)の払出を受けることが可能となる。 In pachinko machines, which are used as gaming machines, a gaming ball is launched into a gaming area within a gaming board by the player operating a handle, and if the gaming ball that flows down the gaming area enters the starting hole, a lottery for a special symbol is executed. Then, when a specific special symbol indicating a jackpot is displayed on the special symbol display, a big prize game that is more advantageous to the player than normal play begins, and the player can receive a large payout of prize balls (gaming media, gaming value).

また、遊技機としてのスロットマシンでは、遊技者によるメダル(遊技媒体、遊技価値)のベットおよびスタートスイッチの操作に応じて、当選役の抽選を行うとともに、種々の図柄が記された複数のリールが回転する。そして、抽選結果と遊技者によるストップスイッチの操作に応じてリールが順次停止され、払い出しの対象となるライン上である有効ライン上に、当選役に対応する図柄組み合わせが表示されると、所定枚数のメダルが払い出されるなど、遊技上の利益(以下、単に遊技利益という)が遊技者に付与されることとなる。 In addition, in slot machines as gaming machines, a winning combination is drawn in response to the player's bet of medals (gaming media, gaming value) and the operation of a start switch, and multiple reels marked with various symbols spin. The reels are then stopped sequentially in response to the results of the lottery and the player's operation of a stop switch, and when a symbol combination corresponding to a winning combination is displayed on an active line, which is the line that is the subject of a payout, a predetermined number of medals is paid out, and a gaming profit (hereinafter simply referred to as gaming profit) is awarded to the player.

また、パチンコ機を封入循環式にして遊技者が遊技球に触れることなく遊技を進行することができる管理遊技機(例えば、特許文献1)や、メダルの介在なしに遊技を進行することができるメダルレス遊技機(例えば、特許文献2)の開発が進んでいる。 In addition, development is underway on managed gaming machines that use a sealed circulation system in which the player can play without touching the game balls (e.g., Patent Document 1), and medal-less gaming machines that allow the player to play without the need for medals (e.g., Patent Document 2).

特開2020-156551号公報JP 2020-156551 A 特開2015-134014号公報JP 2015-134014 A

このような管理遊技機やメダルレス遊技機では、遊技機の外部に、遊技球やメダル等の遊技媒体を流通させるための経路を設ける必要がなくなり、メダルレス遊技機においては、物理的な遊技媒体自体が不要となる。このように、メダルレス遊技機では、遊技媒体自体が使用されず、管理遊技機においては非磁性の遊技球を用いることで、金属製の遊技媒体を使用することを前提とするゴト行為を防止することが可能となる。また、遊技機内に遊技媒体の投入や払い出しを行う機構を設ける必要がなくなるので、設計コストや製造コストを削減することができる。 In such managed gaming machines and medalless gaming machines, there is no need to provide a path outside the gaming machine for circulating gaming media such as gaming balls and medals, and in medalless gaming machines, the physical gaming media themselves are not necessary. In this way, medalless gaming machines do not use gaming media themselves, and managed gaming machines use non-magnetic gaming balls, making it possible to prevent cheating that assumes the use of metallic gaming media. In addition, there is no need to provide a mechanism for inserting and paying out gaming media within the gaming machine, which reduces design and manufacturing costs.

さらに、遊技者への遊技媒体の貸し出しや、獲得した遊技媒体の計数等を一元管理することで、不正防止や射幸性を抑制することが可能となる。 Furthermore, by centrally managing the lending of gaming media to players and the counting of acquired gaming media, it is possible to prevent fraud and curb gambling.

一方、物理的な遊技媒体の代わりに、電子的な遊技媒体(遊技価値)や非磁性の遊技媒体を利用するための構成に対し、電子的な遊技媒体を管理しつつ、遊技を適切に進行する新たな仕組みが必要となる。 On the other hand, for configurations that use electronic game media (game value) or non-magnetic game media instead of physical game media, a new mechanism is needed to manage the electronic game media while properly progressing the game.

本発明は、このような課題に鑑み、遊技を適切に進行することが可能な遊技機を提供することを目的としている。 In view of these problems, the present invention aims to provide a gaming machine that allows the game to proceed appropriately.

上記課題を解決するために、外部に所定の信号を出力可能な本発明の遊技機では、遊技に使用するための遊技価値をベットするベット手段と、遊技価値をベットした後、スタートスイッチの操作に基づき、複数種類の図柄がそれぞれ配列された複数のリールを回転制御し、回転している前記リールに対応するストップスイッチの操作に応じ、操作された前記ストップスイッチに対応する前記リールをそれぞれ停止制御するリール制御手段と、前記リールの停止態様に対応する遊技価値を払い出す払出制御手段と、を備え、前記払出制御手段は、前記リールの停止に応じて前記遊技価値を一度に払い出し、その後、前記ベット手段による次遊技のベットを許可し、払い出される前記遊技価値の数に対応するパルスで構成された第1信号を前記外部に出力し、その後、第1信号の出力が完了すると、次の遊技が可能となったことを示す第2信号を前記外部に出力し、前記次遊技のベットを許可するタイミングは、前記第1信号の出力が完了するタイミングより早い。 In order to solve the above problem, the gaming machine of the present invention capable of outputting a predetermined signal to the outside includes a betting means for betting a gaming value to be used in a game, a reel control means for controlling the rotation of a plurality of reels on which a plurality of types of symbols are arranged, based on the operation of a start switch after the gaming value has been bet, and for controlling the stop of each of the reels corresponding to the operated stop switch in response to the operation of a stop switch corresponding to the rotating reel, and a payout control means for paying out a gaming value corresponding to the stopping state of the reels, wherein the payout control means pays out the gaming value all at once in response to the stop of the reels, and then permits a bet for the next game by the betting means and outputs to the outside a first signal consisting of pulses corresponding to the number of the gaming value to be paid out, and then, when the output of the first signal is completed, a second signal indicating that the next game is possible is output to the outside, and the timing for permitting the bet for the next game is earlier than the timing for completing the output of the first signal .

本発明によれば、遊技を適切に進行することが可能となる。 The present invention makes it possible to progress through the game appropriately.

同時回し参考例に係る扉が開放された状態を示す遊技機の斜視図である。1 is an oblique view of a gaming machine showing the door in the open state in the simultaneous rotation reference example. 同時回し参考例に係る遊技機の正面図である。FIG. 2 is a front view of a gaming machine relating to a simultaneous rotation reference example. 同時回し参考例に係る第2大入賞口を説明する図である。A diagram explaining the second large prize slot in the simultaneous spinning reference example. 同時回し参考例に係る遊技の進行を制御する制御手段の内部構成を示すブロック図である。A block diagram showing the internal configuration of a control means for controlling the progress of a game in the simultaneous rotation reference example. 同時回し参考例に係るメインCPUが用いるメモリ領域のアドレスマップである。13 is an address map of a memory area used by a main CPU according to a reference example of simultaneous rotation. 同時回し参考例に係る低確時大当たり決定乱数判定テーブルを説明する図である。This is a diagram explaining the random number judgment table for determining a jackpot at low probability in the simultaneous spin reference example. 同時回し参考例に係る高確時大当たり決定乱数判定テーブルを説明する図である。This is a diagram explaining the random number judgment table for determining a jackpot at high probability in the simultaneous spin reference example. 同時回し参考例に係る当たり図柄乱数判定テーブルおよび小当たり図柄乱数判定テーブルを説明する図である。A diagram explaining a winning pattern random number determination table and a small winning pattern random number determination table for a simultaneous spin reference example. 同時回し参考例に係るリーチグループ決定乱数判定テーブルを説明する図である。A diagram explaining a reach group determination random number judgment table for the simultaneous rotation reference example. 同時回し参考例に係るリーチモード決定乱数判定テーブルを説明する図である。A figure explaining a reach mode determination random number judgment table for the simultaneous rotation reference example. 同時回し参考例に係る変動パターン乱数判定テーブルを説明する図である。A figure explaining a variation pattern random number determination table for a simultaneous rotation reference example. 同時回し参考例に係る変動時間決定テーブルを説明する図である。FIG. 13 is a diagram illustrating a variable time determination table according to a simultaneous rotation reference example. 同時回し参考例に係る遊技状態および変動時間を説明する図である。A diagram explaining the game state and variable time for the simultaneous spin reference example. 同時回し参考例に係る特別電動役物作動ラムセットテーブルを説明する第1の図である。This is the first diagram explaining the special electric role operation ram set table for the simultaneous rotation reference example. 同時回し参考例に係る特別電動役物作動ラムセットテーブルを説明する第2の図である。This is the second diagram explaining the special electric role operation ram set table for the simultaneous rotation reference example. 同時回し参考例に係る遊技状態設定テーブルを説明する図である。A diagram explaining a game status setting table for a simultaneous rotation reference example. 同時回し参考例に係る当たり決定乱数判定テーブルを説明する図である。A diagram explaining a random number judgment table for determining a win in the simultaneous rotation reference example. (a)は同時回し参考例に係る普通図柄変動時間データテーブルを説明する図であり、(b)は同時回し参考例に係る開閉制御パターンテーブルを説明する図である。1A is a diagram explaining a normal pattern change time data table for a simultaneous rotation reference example, and FIG. 1B is a diagram explaining an opening/closing control pattern table for a simultaneous rotation reference example. 同時回し参考例に係る本来の遊技性に則った遊技状態の遷移を説明する図である。A figure explaining the transition of game states in accordance with the original gameplay of the simultaneous spin reference example. 同時回し参考例に係る適切に遊技が行われなかった場合の遊技状態の遷移を説明する図である。A figure explaining the transition of game states when play is not performed properly in the simultaneous spin reference example. 同時回し参考例に係る遊技機状態フラグを説明する図である。A figure explaining the gaming machine status flag for the simultaneous spin reference example. 同時回し参考例に係る主制御基板におけるCPU初期化処理を説明する第1のフローチャートである。11 is a first flowchart illustrating a CPU initialization process in a main control board according to a simultaneous rotation reference example. 同時回し参考例に係る主制御基板におけるCPU初期化処理を説明する第2のフローチャートである。13 is a second flowchart illustrating the CPU initialization process in the main control board according to the simultaneous rotation reference example. 同時回し参考例に係る主制御基板におけるサブコマンド群セット処理を説明するフローチャートである。13 is a flowchart illustrating a sub-command group set process in a main control board according to a simultaneous rotation reference example. 同時回し参考例に係る主制御基板における電源断時退避処理を説明するフローチャートである。13 is a flowchart illustrating a power-off evacuation process in a main control board according to a simultaneous rotation reference example. 同時回し参考例に係る主制御基板におけるタイマ割込み処理を説明するフローチャートである。13 is a flowchart illustrating timer interrupt processing in a main control board in a simultaneous rotation reference example. 同時回し参考例に係る主制御基板における設定関連処理を説明するフローチャートである。13 is a flowchart illustrating setting-related processing in a main control board according to a simultaneous rotation reference example. 同時回し参考例に係る主制御基板におけるスイッチ管理処理を説明するフローチャートである。13 is a flowchart illustrating a switch management process in a main control board according to a simultaneous rotation reference example. 同時回し参考例に係る主制御基板におけるゲート通過処理を説明するフローチャートである。13 is a flowchart illustrating a gate passing process in a main control board according to a simultaneous rotation reference example. 同時回し参考例に係る主制御基板における第1始動口通過処理を説明するフローチャートである。13 is a flowchart explaining the first starting port passing process in the main control board in the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における第2始動口通過処理を説明するフローチャートである。13 is a flowchart explaining the second starting port passing process in the main control board in the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における特別図柄乱数取得処理を説明するフローチャートである。A flowchart explaining the special pattern random number acquisition process in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における取得時演出判定処理を説明するフローチャートである。13 is a flowchart illustrating the acquisition time performance determination process in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における大入賞口通過処理を説明するフローチャートである。A flowchart explaining the large prize opening passing processing in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る特別遊技管理フェーズおよび特別電動役物遊技管理フェーズを説明する図である。A figure explaining the special game management phase and the special electric device game management phase in the simultaneous spinning reference example. 同時回し参考例に係る主制御基板における特別遊技管理処理を説明するフローチャートである。13 is a flowchart explaining the special game management processing in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における特別図柄変動待ち処理を説明するフローチャートである。A flowchart explaining the special pattern change waiting process in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における特別図柄当たり判定処理を説明するフローチャートである。13 is a flowchart explaining the special pattern winning determination process in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における特別図柄変動番号決定処理を説明するフローチャートである。13 is a flowchart explaining the special pattern variable number determination process in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における回数切り管理処理を説明するフローチャートである。13 is a flowchart illustrating the number of times cutoff management processing in the main control board in the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における特別図柄変動中処理を説明するフローチャートである。A flowchart explaining the processing during special pattern changes in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における図柄強制停止処理を説明するフローチャートである。13 is a flowchart explaining the forced pattern stop processing in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における特別図柄停止図柄表示処理を説明するフローチャートである。13 is a flowchart explaining the special pattern stop pattern display processing in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における特別電動役物遊技管理処理を説明するフローチャートである。13 is a flowchart explaining the special electric device play management processing in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における大入賞口開放前処理を説明するフローチャートである。A flowchart explaining the processing before opening the large prize opening in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における大入賞口開閉切替処理を説明するフローチャートである。A flowchart explaining the large prize opening/closing switching process in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における大入賞口開放制御処理を説明するフローチャートである。A flowchart explaining the large prize opening control processing in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における大入賞口閉鎖有効処理を説明するフローチャートである。A flowchart explaining the large prize opening closure activation process in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における大入賞口終了ウェイト処理を説明するフローチャートである。A flowchart explaining the large prize opening end wait processing in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る普通遊技管理フェーズを説明する図である。A diagram explaining the normal game management phase related to the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における普通遊技管理処理を説明するフローチャートである。13 is a flowchart explaining the normal game management processing in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における普通図柄変動待ち処理を説明するフローチャートである。A flowchart explaining the normal pattern change waiting process in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における普通図柄変動中処理を説明するフローチャートである。A flowchart explaining the processing during normal pattern fluctuations on the main control board in the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における普通図柄停止図柄表示処理を説明するフローチャートである。A flowchart explaining the normal pattern stop pattern display processing in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における普通電動役物入賞口開放前処理を説明するフローチャートである。This is a flowchart explaining the processing before opening of the winning opening of a normal electric device in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における普通電動役物入賞口開閉切替処理を説明するフローチャートである。This is a flowchart explaining the normal electric gimmick prize opening/closing switching process in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における普通電動役物入賞口開放制御処理を説明するフローチャートである。This is a flowchart explaining the control processing for opening the winning port of a normal electric device in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における普通電動役物入賞口閉鎖有効処理を説明するフローチャートである。This is a flowchart explaining the normal electric device winning opening closure validity processing in the main control board for the simultaneous rotation reference example. 同時回し参考例に係る主制御基板における普通電動役物入賞口終了ウェイト処理を説明するフローチャートである。This is a flowchart explaining the normal electric gimmick winning slot end wait processing in the main control board for the simultaneous rotation reference example. 演出参考例に係るリーチなし変動パターンの変動演出の一例を説明する図である。This is a diagram illustrating an example of a variable presentation of a no-reach variable pattern related to a reference presentation example. 演出参考例に係るノーマルリーチ変動パターンの変動演出の一例を説明する図である。This is a diagram illustrating an example of a normal reach fluctuation pattern fluctuation presentation related to a presentation reference example. 演出参考例に係るハズレ時の発展リーチ変動パターンの変動演出の一例を説明する図である。This is a diagram illustrating an example of a change in the development reach change pattern when a miss occurs in accordance with a reference example of the performance. 演出参考例に係る大当たり時の発展リーチ変動パターンの変動演出の一例を説明する図である。This is a diagram illustrating an example of a change presentation of a development reach change pattern at the time of a jackpot, which is related to a reference presentation example. 演出参考例に係るリーチ発展演出が2回実行される場合の変動演出の一例を説明する図である。This is a diagram illustrating an example of a variable presentation when the reach development presentation relating to the presentation reference example is executed twice. 演出参考例に係る擬似連続リーチ変動パターンの変動演出の一例を説明する図である。13 is a diagram illustrating an example of a pseudo-continuous reach fluctuation pattern fluctuation presentation relating to a presentation reference example. FIG. 演出参考例に係る変動演出決定テーブルを説明する図である。A diagram explaining a variable performance decision table related to a performance reference example. 演出参考例に係る保留表示演出の一例を説明する図である。A figure explaining an example of a hold display presentation related to a reference presentation example. (a)は演出参考例に係る最終保留表示パターン決定テーブルを説明する図であり、(b)は演出参考例に係る1つ前保留表示パターン決定テーブルを説明する図である。1A is a diagram explaining a final hold display pattern determination table relating to a reference example of presentation, and FIG. 1B is a diagram explaining a previous hold display pattern determination table relating to a reference example of presentation. 演出参考例に係る副制御基板におけるサブCPU初期化処理を説明するフローチャートである。13 is a flowchart explaining the sub-CPU initialization process in the sub-control board for the reference example performance. 演出参考例に係る副制御基板におけるサブタイマ割込み処理を説明するフローチャートである。13 is a flowchart explaining sub-timer interrupt processing in a sub-control board for a reference example of a performance. 演出参考例に係る副制御基板における先読み指定コマンド受信処理を説明するフローチャートである。13 is a flowchart explaining the pre-reading designation command reception processing in the sub-control board for the reference example performance. 演出参考例に係る副制御基板における変動コマンド受信処理を説明するフローチャートである。13 is a flowchart explaining the variable command receiving processing in the sub-control board for the reference example performance. スロットマシンの概略的な機械的構成を説明するための外観図である。FIG. 1 is an external view for explaining a schematic mechanical configuration of a slot machine. スロットマシンの概略的な機械的構成を説明するための前面扉を開いた状態での外観図である。1 is an external view of the slot machine with the front door open, illustrating the general mechanical configuration of the slot machine. FIG. リールの図柄配列および有効ラインを説明する図である。1 is a diagram illustrating the arrangement of symbols on the reels and the winning lines. スロットマシンの概略的な電気的構成を示したブロック図である。FIG. 2 is a block diagram showing a schematic electrical configuration of the slot machine. 当選役を説明するための説明図である。FIG. 13 is an explanatory diagram for explaining a winning combination. 当選種別抽選テーブルを示す図である。FIG. 13 is a diagram showing a winning type lottery table. 当選種別抽選テーブルを示す図である。FIG. 13 is a diagram showing a winning type lottery table. 遊技状態の遷移を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining the transition of a game state. 演出状態の遷移を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining the transition of the presentation state. 主制御基板におけるCPU初期化処理を説明するフローチャートである。11 is a flowchart illustrating a CPU initialization process in a main control board. 主制御基板におけるコールドスタート処理を説明するフローチャートである。11 is a flowchart illustrating a cold start process in a main control board. 主制御基板におけるエラー停止処理を説明するフローチャートである。13 is a flowchart illustrating an error stop process in the main control board. 主制御基板における設定値切り替え処理を説明するフローチャートである。13 is a flowchart illustrating a setting value switching process in a main control board. 主制御基板における初期化スタート処理を説明するフローチャートである。11 is a flowchart illustrating an initialization start process in the main control board. 主制御基板における状態復帰処理を説明するフローチャートである。13 is a flowchart illustrating a state restoration process in a main control board. 主制御基板における遊技開始処理を説明するフローチャートである。13 is a flowchart explaining game start processing on the main control board. 主制御基板における遊技メダル投入処理を説明するフローチャートである。13 is a flowchart explaining the game medal insertion processing on the main control board. 主制御基板における内部抽選処理を説明するフローチャートである。13 is a flowchart illustrating an internal lottery process in the main control board. 主制御基板における図柄コード設定処理を説明するフローチャートである。13 is a flowchart illustrating a pattern code setting process in the main control board. 主制御基板における回胴回転中処理を説明するフローチャートである。13 is a flowchart explaining the processing performed during reel rotation on the main control board. 主制御基板における回胴停止処理を説明するフローチャートである。13 is a flowchart explaining the reel stop processing in the main control board. 主制御基板における表示判定処理を説明するフローチャートである。13 is a flowchart illustrating a display determination process in a main control board. 主制御基板における払出処理を説明するフローチャートである。13 is a flowchart explaining the payout process in the main control board. 主制御基板における遊技移行処理を説明するフローチャートである。13 is a flowchart explaining game transition processing on the main control board. 主制御基板における電源断時退避処理を説明するフローチャートである。11 is a flowchart illustrating a save process in the main control board when power is turned off. 主制御基板におけるタイマ割込み処理を説明するフローチャートである。11 is a flowchart illustrating a timer interrupt process in a main control board. メインCPU周辺の電気的な接続を説明するための図である。FIG. 2 is a diagram for explaining electrical connections around a main CPU. CPUコアの内部構成を示したブロック図である。FIG. 2 is a block diagram showing the internal configuration of a CPU core. レジスタの構成を説明した図である。FIG. 2 is a diagram illustrating a configuration of a register. メモリマップを示す説明図である。FIG. 2 is an explanatory diagram showing a memory map. 主制御基板の外観を示した説明図である。FIG. 2 is an explanatory diagram showing the appearance of a main control board. 比率表示部の表示態様を説明するための説明図である。FIG. 13 is an explanatory diagram for explaining a display mode of a ratio display section. 役物比率の第1の演算例を示すフローチャートである。13 is a flowchart showing a first example of calculation of the reel ratio. 8ビットMUL命令のみを用いた第1の演算例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining a first operation example using only an 8-bit MUL instruction; 第1の演算例を実現するための具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process for implementing a first calculation example. 第1の演算例を実現するための具体的なコマンドの一例を示した図である。FIG. 11 is a diagram showing an example of a specific command for implementing the first calculation example. 16ビット乗算器を用いた第2の演算例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining a second calculation example using a 16-bit multiplier. 第2の演算例を実現するための具体的な処理を示したフローチャートである。10 is a flowchart showing a specific process for implementing the second calculation example. 第2の演算例を実現するための具体的なコマンドの一例を示した図である。FIG. 11 is a diagram showing an example of a specific command for implementing the second calculation example. 第1の演算例を実現するための具体的なコマンドの一例を示した図である。FIG. 11 is a diagram showing an example of a specific command for implementing the first calculation example. 2の累乗数を乗じた数の繰り返し減算を用いた第3の演算例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining a third calculation example using repeated subtraction of a number multiplied by a power of 2; 第3の演算例を実現するための具体的な処理を示したフローチャートである。13 is a flowchart showing a specific process for implementing the third calculation example. 第3の演算例を実現するための具体的なコマンドの一例を示した図である。FIG. 13 is a diagram showing an example of a specific command for implementing the third calculation example. 第4の演算例を実現するための具体的な処理を示したフローチャートである。13 is a flowchart showing a specific process for implementing the fourth calculation example. 第4の演算例を実現するための具体的なコマンドの一例を示した図である。FIG. 13 is a diagram showing an example of a specific command for implementing the fourth calculation example. 第5の演算例を実現するための具体的な処理を示したフローチャートである。13 is a flowchart showing a specific process for implementing the fifth calculation example. 第5の演算例を実現するための具体的なコマンドの一例を示した図である。FIG. 13 is a diagram showing an example of a specific command for implementing the fifth calculation example. 第6の演算例を実現するための具体的な処理を示したフローチャートである。13 is a flowchart showing a specific process for implementing the sixth calculation example. 第6の演算例を実現するための具体的なコマンドの一例を示した図である。FIG. 13 is a diagram showing an example of a specific command for implementing the sixth calculation example. BYTESELモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of a BYTESEL module. BYTESELモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for realizing a BYTESEL module. BYTESELモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for realizing a BYTESEL module. BYTESELモジュールを実現するためのコマンドの他の例を説明するための説明図である。FIG. 13 is an explanatory diagram for explaining another example of a command for implementing the BYTESEL module. BYTESELモジュールを実現するためのコマンドのさらに他の例を説明するための説明図である。FIG. 13 is an explanatory diagram for explaining still another example of a command for realizing a BYTESEL module. WORDSELモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of a WORDSEL module. WORDSELモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for realizing a WORDSEL module. WORDSELモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for realizing a WORDSEL module. WORDSELモジュールを実現するためのコマンドの他の例を説明するための説明図である。FIG. 13 is an explanatory diagram for explaining another example of a command for implementing a WORDSEL module. WORDSELモジュールを実現するためのコマンドのさらに他の例を説明するための説明図である。FIG. 13 is an explanatory diagram for explaining still another example of a command for implementing a WORDSEL module. CAL_MODモジュールを説明するための説明図である。FIG. 11 is an explanatory diagram for explaining a CAL_MOD module. HID_JUGモジュールを説明するための説明図である。FIG. 2 is an explanatory diagram for explaining a HID_JUG module. RAMSETモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of a RAMSET module. RAMSETモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for realizing a RAMSET module. RAMSETモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for realizing a RAMSET module. RAMSETモジュールを実現するためのコマンドの他の例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining another example of a command for realizing a RAMSET module. TABLSETモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing a TABLESET module. TABLSETモジュールを実現するためのコマンドの他の例を説明するための説明図である。FIG. 13 is an explanatory diagram for explaining another example of the command for implementing the TABLESET module. BYTEDECモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of a BYTEDEC module. BYTEDECモジュールにおけるデクリメント態様とゼロフラグおよびキャリーフラグの設定を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining the decrement mode in the BYTEDEC module and the setting of the zero flag and the carry flag. BYTEDECモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing a BYTEDEC module. BYTEDECモジュールを実現するためのコマンドの他の例を説明するための説明図である。FIG. 13 is an explanatory diagram for explaining another example of a command for implementing the BYTEDEC module. RAM_DECモジュールを説明するための説明図である。FIG. 2 is an explanatory diagram for explaining a RAM_DEC module. WORDDECモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of a WORDDEC module. WORDDECモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing a WORDDEC module. WORDDECモジュールを実現するためのコマンドの他の例を説明するための説明図である。FIG. 13 is an explanatory diagram for explaining another example of the command for implementing the WORDDEC module. サブルーチンから戻る処理の一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a process for returning from a subroutine. PY_CMDAモジュールを説明するための説明図である。FIG. 2 is an explanatory diagram for explaining a PY_CMDA module. GAT_PASモジュールを説明するための説明図である。FIG. 2 is an explanatory diagram for explaining a GAT_PAS module. TDN_PASモジュールを説明するための説明図である。FIG. 2 is an explanatory diagram for explaining a TDN_PAS module. FD_OPNモジュールを説明するための説明図である。FIG. 2 is an explanatory diagram for explaining an FD_OPN module. TZ_STAモジュールを説明するための説明図である。FIG. 11 is an explanatory diagram for explaining a TZ_STA module. TZ_RGETモジュールを説明するための説明図である。FIG. 11 is an explanatory diagram for explaining a TZ_RGET module. TRSVSELモジュールを説明するための説明図である。FIG. 1 is an explanatory diagram for explaining a TRSVSEL module. TDOVCHKモジュールを説明するための説明図である。FIG. 13 is an explanatory diagram for explaining a TDOVCHK module. BER_CHKモジュールを説明するための説明図である。FIG. 11 is an explanatory diagram for explaining a BER_CHK module. TEF_SELモジュールを説明するための説明図である。FIG. 2 is an explanatory diagram for explaining a TEF_SEL module. SET_RIGモジュールを説明するための説明図である。FIG. 11 is an explanatory diagram for explaining a SET_RIG module. PRE_LOTモジュールを説明するための説明図である。FIG. 11 is an explanatory diagram for explaining a PRE_LOT module. REG_LOTモジュールを説明するための説明図である。FIG. 11 is an explanatory diagram for explaining a REG_LOT module. BIG_SLTモジュールを説明するための説明図である。FIG. 2 is an explanatory diagram for explaining a BIG_SLT module. NAV_SETモジュールを説明するための説明図である。FIG. 2 is an explanatory diagram for explaining a NAV_SET module. TOK_PRCモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing specific processing of a TOK_PRC module. TOK_PRCモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for realizing a TOK_PRC module. TEF_SELモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of a TEF_SEL module. TEF_SELモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for realizing a TEF_SEL module. SWI_PRCモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing specific processing of a SWI_PRC module. SWI_PRCモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing a SWI_PRC module. CPUINITモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing specific processing of a CPUINIT module. CPUINITモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing a CPUINIT module. TMR_IPTモジュールを説明するための説明図である。FIG. 2 is an explanatory diagram for explaining a TMR_IPT module. FZ_SPNモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of an FZ_SPN module. FZ_SPNモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing an FZ_SPN module. CPUINITモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing a CPUINIT module. EXE_SETモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing an EXE_SET module. HPT_GRPモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of the HPT_GRP module. (a)、(b)は、HPT_GRPモジュールを実現するためのコマンドの一例を説明するための説明図であり、(c)は、リーチグループ決定乱数判定テーブルの一例を説明するための説明図である。13A and 13B are explanatory diagrams for explaining an example of a command for realizing the HPT_GRP module, and FIG. 13C is an explanatory diagram for explaining an example of a reach group determination random number judgment table. E_ILGERモジュールを説明するための説明図である。FIG. 13 is an explanatory diagram for explaining an E_ILGER module. E_LEVOTモジュールを説明するための説明図である。FIG. 2 is an explanatory diagram for explaining an E_LEVOT module. SBC_OUTモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of an SBC_OUT module. SBC_OUTモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing an SBC_OUT module. SBC_OUTモジュールを実現するための他のコマンドの一例を説明するための説明図である。FIG. 13 is an explanatory diagram for explaining an example of another command for implementing the SBC_OUT module. FZ_OPNモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing an FZ_OPN module. TD_OPNモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing a TD_OPN module. HSY_PRCモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing an HSY_PRC module. FDN_CHKモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing an FDN_CHK module. FZ_STPモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for realizing an FZ_STP module. 乱数発生器の構成を説明するためのブロック図である。FIG. 2 is a block diagram for explaining the configuration of a random number generator. 乱数生成部の組み合わせを説明する図である。FIG. 13 is a diagram for explaining a combination of random number generation units. SMC_ROTモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of an SMC_ROT module. SMC_ROTモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing an SMC_ROT module. SMC_ROTモジュールを実現するためのコマンドの他の例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining another example of a command for implementing the SMC_ROT module. INITIALモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of an INITIAL module. INITIALモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing an INITIAL module. INITIALモジュールを実現するためのコマンドの他の例を説明するための説明図である。FIG. 13 is an explanatory diagram for explaining another example of the command for implementing the INITIAL module. RANKSETモジュールを説明するための説明図である。FIG. 2 is an explanatory diagram for explaining a RANKSET module. PWRFAILモジュールを説明するための説明図である。FIG. 13 is an explanatory diagram for explaining a PWRFAIL module. DYM_OUTモジュールを説明するための説明図である。FIG. 2 is an explanatory diagram for explaining a DYM_OUT module. IPT_PDモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of an IPT_PD module. IPT_PDモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for realizing an IPT_PD module. IPT_PDモジュールを実現するためのコマンドの他の例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining another example of the command for realizing the IPT_PD module. DYNMOUTモジュールを説明するための説明図である。FIG. 2 is an explanatory diagram for explaining a DYNMOUT module. EXT_PRCモジュールを説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an EXT_PRC module. STOPDCTモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of a STOPDCT module. STOPDCTモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing a STOPDCT module. STOPDCTモジュールを実現するためのコマンドの他の例を説明するための説明図である。FIG. 13 is an explanatory diagram for explaining another example of the command for implementing the STOPDCT module. E_SETTMモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of an E_SETTM module. E_SETTMモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing an E_SETTM module. E_SETTMモジュールを実現するためのコマンドの他の例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining another example of a command for implementing the E_SETTM module. DYM_OUTモジュールを説明するための説明図である。FIG. 2 is an explanatory diagram for explaining a DYM_OUT module. DYM_OUTモジュールを説明するための説明図である。FIG. 2 is an explanatory diagram for explaining a DYM_OUT module. E_SETTMモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of an E_SETTM module. E_SETTMモジュールを実現するためのコマンドのさらに他の例を説明するための説明図である。FIG. 13 is an explanatory diagram for explaining yet another example of a command for implementing the E_SETTM module. RAM_INCモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of a RAM_INC module. RAM_INCモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing a RAM_INC module. RAM_INCモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing a RAM_INC module. RAM_INCモジュールを実現するためのコマンドの他の例を説明するための説明図である。FIG. 13 is an explanatory diagram for explaining another example of the command for implementing the RAM_INC module. RAM_INCモジュールを実現するためのコマンドの他の例を説明するための説明図である。FIG. 13 is an explanatory diagram for explaining another example of the command for implementing the RAM_INC module. TABLSETモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of a TABLESET module. TABLSETモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing a TABLESET module. TABLSETモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing a TABLESET module. TABLSETモジュールを実現するためのコマンドの他の例を説明するための説明図である。FIG. 13 is an explanatory diagram for explaining another example of the command for implementing the TABLESET module. IPT_PCモジュールの具体的な処理を示したフローチャートである。13 is a flowchart showing a specific process of an IPT_PC module. IPT_PCモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing an IPT_PC module. CMDPROCモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing specific processing of a CMDPROC module. CMDPROCモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for implementing a CMDPROC module. SET_PLSモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of the SET_PLS module. SET_PLSモジュールを実現するためのコマンドの一例を説明するための説明図である。11 is an explanatory diagram illustrating an example of a command for implementing a SET_PLS module. FIG. OTM_ATKモジュールの具体的な処理を示したフローチャートである。11 is a flowchart showing a specific process of the OTM_ATK module. OTM_ATKモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining an example of a command for realizing an OTM_ATK module. KRS_JDGモジュールを実現するためのコマンドの一例を説明するための説明図である。FIG. 11 is an explanatory diagram illustrating an example of a command for implementing a KRS_JDG module. KRS_JDGモジュールを実現するためのコマンドの他の例を説明するための説明図である。FIG. 13 is an explanatory diagram for explaining another example of the command for realizing the KRS_JDG module. Q’レジスタに値を設定するコマンドの一例を示した図である。FIG. 13 is a diagram showing an example of a command for setting a value in a Q′ register. Q’レジスタに値を設定するコマンドの一例を示した図である。FIG. 13 is a diagram showing an example of a command for setting a value in a Q′ register. Q’レジスタに値を設定するコマンドの一例を示した図である。FIG. 13 is a diagram showing an example of a command for setting a value in a Q′ register. Q’レジスタに値を設定するコマンドの一例を示した図である。FIG. 13 is a diagram showing an example of a command for setting a value in a Q′ register. レジスタバンクおよびレジスタ群の遷移を説明するための図である。FIG. 13 is a diagram for explaining the transition of register banks and register groups. アクセス方式の利用態様を説明するための説明図である。FIG. 1 is an explanatory diagram for explaining a usage mode of an access method. サブコマンド送信処理の一例を説明するためのフローチャートである。11 is a flowchart illustrating an example of a subcommand transmission process. サブコマンド送信処理を実現するための具体的なコマンドの一例を示した図である。FIG. 11 is a diagram showing an example of a specific command for implementing a sub-command transmission process. サブコマンド送信処理を実現するための他のコマンドの一例を示した図である。FIG. 13 is a diagram showing an example of another command for implementing a subcommand transmission process. CPU初期化処理を実現するためのコマンド群の一部を示した図である。FIG. 11 is a diagram showing a part of a command group for realizing a CPU initialization process. CPU初期化処理で参照するテーブルを示した図である。FIG. 13 shows a table referred to in the CPU initialization process. CPU初期化処理を実現するためのコマンド群の一部の他の例を示した図である。FIG. 13 is a diagram showing another example of a portion of the command group for implementing the CPU initialization process. CPU初期化処理で参照するテーブルの他の例を示した図である。FIG. 13 is a diagram showing another example of a table referred to in the CPU initialization process. CPU初期化処理を実現するためのコマンド群の一部の他の例を示した図である。FIG. 13 is a diagram showing another example of a portion of the command group for implementing the CPU initialization process. 出力ポートのアドレスを示した説明図である。FIG. 11 is an explanatory diagram showing addresses of output ports. 電源断時退避処理を実現するためのコマンド群の一部を示した図である。FIG. 11 is a diagram showing a part of a command group for implementing a save process at the time of power failure. 電源断時退避処理を実現するためのコマンド群の一部の他の例を示した図である。FIG. 13 is a diagram showing another example of a portion of the command group for implementing the power-off save process. 遊技システムを示した機能ブロック図である。FIG. 2 is a functional block diagram showing the gaming system. メダルレス遊技機および専用ユニットの概略的な機械的構成を説明するための外観図である。1 is an external view for explaining the general mechanical configuration of a medalless gaming machine and a dedicated unit. FIG. メダルレス遊技機および専用ユニットの概略的な電気的構成を示したブロック図である。A block diagram showing a schematic electrical configuration of the medalless gaming machine and the dedicated unit. 他の基板構成を説明するための説明図である。FIG. 11 is an explanatory diagram for explaining another substrate configuration. ケースの封入態様を説明するための説明図である。FIG. 2 is an explanatory diagram for explaining an enclosure mode of a case. メダルレス遊技機の各機能を実行するCPUおよび領域を説明するための説明図である。An explanatory diagram for explaining the CPU and areas that execute each function of the medalless gaming machine. 遊技機情報通知のフォーマットを説明するための説明図である。11 is an explanatory diagram for explaining the format of a gaming machine information notification. FIG. 遊技機情報通知のフォーマットを説明するための説明図である。11 is an explanatory diagram for explaining the format of a gaming machine information notification. FIG. 遊技機情報通知のフォーマットを説明するための説明図である。11 is an explanatory diagram for explaining the format of a gaming machine information notification. FIG. 遊技機情報通知のフォーマットを説明するための説明図である。11 is an explanatory diagram for explaining the format of a gaming machine information notification. FIG. 計数通知のフォーマットを説明するための説明図である。FIG. 11 is an explanatory diagram for explaining the format of a counting notification. 貸出受領結果応答のフォーマットを説明するための説明図である。13 is an explanatory diagram for explaining the format of a loan acceptance result response. FIG. 貸出通知のフォーマットを説明するための説明図である。FIG. 13 is an explanatory diagram for explaining the format of a lending notice. 遊技機情報通知、計数通知、貸出通知、貸出受領結果応答の通知タイミングを示したタイミングチャートである。13 is a timing chart showing the timing of notification of gaming machine information, counting notification, loan notification, and loan receipt result response. 遊技機情報通知の送信タイミングを説明するための説明図である。11 is an explanatory diagram for explaining the timing of transmitting a gaming machine information notification. FIG. メダル数制御CPUにおける計数スイッチ監視処理の流れを示したフローチャートである。13 is a flowchart showing the flow of a counting switch monitoring process in the medal count control CPU. メダル数制御CPUにおける計数処理の流れを示したフローチャートである。13 is a flowchart showing the flow of counting processing in the medal number control CPU. 計数処理を説明するためのタイミングチャートである。10 is a timing chart for explaining a counting process. 遊技メダル数の表示態様を説明するためのタイミングチャートである。11 is a timing chart for explaining a display mode of the number of game medals. メダル数制御CPUにおける計数スイッチ処理の流れを示したフローチャートである。13 is a flowchart showing the flow of count switch processing in the medal number control CPU. 計数メダル数の設定を説明するタイムチャートである。13 is a time chart explaining the setting of the number of counted medals. 複数回の信号をすべて有効に処理する変形例にかかる計数スイッチ処理の流れを示したフローチャートである。13 is a flowchart showing the flow of count switch processing according to a modified example in which all signals generated multiple times are effectively processed. 複数回の信号をすべて有効に処理する変形例にかかる計数メダル数の設定を説明するタイムチャートである。13 is a time chart explaining the setting of the number of counted medals in a modified example in which all multiple signals are effectively processed. メダル数制御CPUにおけるコマンド受信処理の流れを示したフローチャートである。13 is a flowchart showing the flow of command reception processing in the medal count control CPU. メダル数制御CPUにおけるコマンド受信処理の流れを示したフローチャートである。13 is a flowchart showing the flow of command reception processing in the medal count control CPU. メダル数制御CPUにおけるコマンド受信処理の流れを示したフローチャートである。13 is a flowchart showing the flow of command reception processing in the medal count control CPU. 電源投入時の通信仕様を示したフローチャートである。11 is a flowchart showing communication specifications when power is turned on. 操作時の通信仕様を示したフローチャートである。11 is a flowchart showing communication specifications during operation. 遊技終了時の通信仕様を示したフローチャートである。13 is a flowchart showing communication specifications at the end of a game. メダル数制御CPUにおけるベット処理の流れを示したフローチャートである。13 is a flowchart showing the flow of bet processing in the medal number control CPU. ベット処理の実際の計算例を示した説明図である。FIG. 13 is an explanatory diagram showing an example of actual calculation in the betting process. 設定変更中信号の更新処理を示したフローチャートである。13 is a flowchart showing a process of updating a setting change signal. 設定確認中信号の更新処理を示したフローチャートである。13 is a flowchart showing an update process of a setting confirmation signal. メインCPUとメダル数制御CPUとの通信処理の比較例を示した説明図である。An explanatory diagram showing a comparison example of communication processing between a main CPU and a medal count control CPU. コマンドの1バイト送信の概念を示したフローチャートとコマンドを示した図である。11A and 11B are a flowchart showing the concept of transmitting one byte of a command and a diagram showing the command. メインCPUとメダル数制御CPUとの通信処理を示した説明図である。An explanatory diagram showing communication processing between the main CPU and the medal count control CPU. メダルレス遊技機の試射試験を説明するための説明図である。FIG. 13 is an explanatory diagram for explaining a test shot test of a medalless gaming machine. スロットマシンの動作を説明するための説明図である。FIG. 2 is an explanatory diagram for explaining the operation of the slot machine. メダルレス遊技機の動作を説明するための説明図である。FIG. 2 is an explanatory diagram for explaining the operation of the medalless gaming machine.

以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。かかる実施形態に示す寸法、材料、その他具体的な数値等は、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、本発明を限定するものではない。なお、本明細書および図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本発明に直接関係のない要素は図示を省略する。 The preferred embodiment of the present invention will be described in detail below with reference to the attached drawings. The dimensions, materials, and other specific values shown in the embodiment are merely examples to facilitate understanding of the invention, and do not limit the present invention unless otherwise specified. In this specification and drawings, elements having substantially the same functions and configurations are given the same reference numerals to avoid duplicated explanations, and elements not directly related to the present invention are not illustrated.

本発明の実施形態では、遊技機として、パチンコ機とスロットマシンとをその順に例示し、その後、具体的な処理を詳述する。 In this embodiment of the present invention, a pachinko machine and a slot machine are given as examples of gaming machines, in that order, and then the specific processing is described in detail.

<パチンコ機>
本発明の実施例の理解を容易にするため、まず、同時回し参考例として、所謂同時回し機の機械的構成および電気的構成、および、各基板における具体的な処理を説明する。そして、演出参考例として、同時回し機において実行可能な具体的な演出や当該演出に係る具体的な処理を説明する。その後、本発明の実施例として、各参考例と異なる構成について具体的に説明する。
<Pachinko machine>
In order to facilitate understanding of the embodiments of the present invention, first, as a simultaneous rotation reference example, the mechanical and electrical configurations of the so-called simultaneous rotation machine and the specific processing on each board are explained. Then, as a performance reference example, specific performances that can be executed by the simultaneous rotation machine and specific processing related to the performance are explained. After that, as an embodiment of the present invention, the configurations that are different from each reference example are specifically explained.

<同時回し参考例>
図1は、同時回し参考例に係る遊技機100の斜視図であり、扉が開放された状態を示している。図示のように、遊技機100は、略矩形状に組まれた四辺によって囲繞空間が形成される外枠102と、この外枠102にヒンジ機構によって開閉自在に取り付けられた中枠104と、この中枠104に、ヒンジ機構によって開閉自在に取り付けられた前枠106と、を備えている。
<Simultaneous rotation example>
1 is a perspective view of a gaming machine 100 according to a simultaneous rotation reference example, showing a state in which the door is open. As shown in the figure, the gaming machine 100 includes an outer frame 102 having an enclosed space formed by four sides assembled into a substantially rectangular shape, a middle frame 104 attached to the outer frame 102 by a hinge mechanism so as to be freely opened and closed, and a front frame 106 attached to the middle frame 104 by a hinge mechanism so as to be freely opened and closed.

中枠104は、外枠102と同様に、略矩形状に組まれた四辺によって囲繞空間が形成されており、この囲繞空間に遊技盤108が保持されている。また、前枠106には、ガラス製または樹脂製の透過板110が保持されている。そして、これら中枠104および前枠106を外枠102に対して閉じると、遊技盤108と透過板110とが所定の間隔を維持して略平行に対面するとともに、遊技機100の正面側から、透過板110を介して遊技盤108が視認可能となる。 The middle frame 104, like the outer frame 102, has four sides arranged in a roughly rectangular shape to form an enclosed space, and the game board 108 is held in this enclosed space. The front frame 106 also holds a glass or resin transparent plate 110. When the middle frame 104 and the front frame 106 are closed against the outer frame 102, the game board 108 and the transparent plate 110 face each other roughly parallel, maintaining a predetermined distance between them, and the game board 108 can be seen through the transparent plate 110 from the front side of the gaming machine 100.

図2は、同時回し参考例に係る遊技機100の正面図である。この図に示すように、前枠106の下部には、遊技機100の正面側に突出する操作ハンドル112が設けられている。この操作ハンドル112は、遊技者が回転操作可能に設けられており、遊技者が操作ハンドル112を回転させて発射操作を行うと、当該操作ハンドル112の回転角度に応じた強度で、不図示の発射機構によって遊技球が発射される。このようにして発射された遊技球は、遊技盤108に設けられたレール114a、114b間を上昇して遊技領域116に導かれることとなる。 Figure 2 is a front view of a gaming machine 100 relating to a simultaneous rotation reference example. As shown in this figure, an operating handle 112 that protrudes toward the front side of the gaming machine 100 is provided at the bottom of the front frame 106. This operating handle 112 is provided so that it can be rotated by the player, and when the player rotates the operating handle 112 to perform a firing operation, a gaming ball is fired by a firing mechanism (not shown) with a strength according to the rotation angle of the operating handle 112. The gaming ball fired in this way rises between rails 114a, 114b provided on the gaming board 108 and is guided to the playing area 116.

遊技領域116は、遊技盤108と透過板110との間隔に形成される空間であって、遊技球が流下または転動可能な領域である。遊技盤108には、多数の釘や風車(不図示)が設けられており、遊技領域116に導かれた遊技球が釘や風車に衝突して、不規則な方向に流下、転動するようにしている。 The play area 116 is a space formed between the play board 108 and the transparent plate 110, and is an area in which the play balls can flow down or roll. The play board 108 is provided with numerous nails and windmills (not shown), and the play balls guided to the play area 116 collide with the nails and windmills, causing them to flow down and roll in irregular directions.

遊技領域116は、発射機構の発射強度に応じて遊技球の進入度合いを互いに異にし、遊技球の打ち分けが可能な第1遊技領域116aおよび第2遊技領域116bを備えている。第1遊技領域116aは、遊技機100に正対した遊技者から見て遊技領域116の左側に位置し、第2遊技領域116bは、遊技機100に正対した遊技者から見て遊技領域116の右側に位置している。レール114a、114bが遊技領域116の左側にあることから、発射機構によって所定の強度未満の発射強度で発射された遊技球は第1遊技領域116aに進入し、所定の強度以上の発射強度で発射された遊技球は第2遊技領域116bに進入することとなる。 The play area 116 has a first play area 116a and a second play area 116b, in which the degree of entry of the play balls differs according to the launch strength of the launch mechanism, allowing the player to hit different game balls. The first play area 116a is located on the left side of the play area 116 as seen by a player facing the gaming machine 100, and the second play area 116b is located on the right side of the play area 116 as seen by a player facing the gaming machine 100. Since the rails 114a and 114b are on the left side of the play area 116, game balls launched by the launch mechanism with a launch strength less than a predetermined strength will enter the first play area 116a, and game balls launched with a launch strength equal to or greater than the predetermined strength will enter the second play area 116b.

また、遊技領域116には、遊技球が入球可能な一般入賞口118、第1固定始動口120A、第1可変始動口120B、第2始動口122、普図作動口125が設けられており、これら一般入賞口118、第1固定始動口120A、第1可変始動口120B、第2始動口122、普図作動口125に遊技球が入球すると、それぞれ所定の賞球が遊技者に払い出される。なお、以下では、第1固定始動口120Aおよび第1可変始動口120Bを総称して第1始動口120と呼ぶ。 The game area 116 is also provided with a general prize entry port 118 through which game balls can enter, a first fixed start port 120A, a first variable start port 120B, a second start port 122, and a general action port 125. When a game ball enters the general prize entry port 118, the first fixed start port 120A, the first variable start port 120B, the second start port 122, or the general action port 125, a predetermined prize ball is paid out to the player. In the following, the first fixed start port 120A and the first variable start port 120B are collectively referred to as the first start port 120.

詳しくは後述するが、第1始動口120内には第1始動領域が設けられ、また、第2始動口122内には第2始動領域が設けられている。そして、第1始動口120または第2始動口122に遊技球が入球して第1始動領域または第2始動領域に遊技球が進入すると、予め設けられた複数の特別図柄の中からいずれか1の特別図柄を決定するための抽選が行われる。各特別図柄には、遊技者にとって有利な大役遊技や小当たり遊技の実行可否が対応付けられている。したがって、遊技者は、第1始動口120または第2始動口122に遊技球が入球すると、所定の賞球を獲得するのと同時に、種々の遊技利益を受ける権利獲得の機会を獲得することとなる。 As will be described in more detail later, a first starting area is provided within the first starting hole 120, and a second starting area is provided within the second starting hole 122. When a game ball enters the first starting hole 120 or the second starting hole 122 and enters the first starting area or the second starting area, a lottery is held to determine one of a number of special patterns that have been set up in advance. Each special pattern is associated with the possibility of executing a big prize game or a small prize game that is advantageous to the player. Therefore, when a game ball enters the first starting hole 120 or the second starting hole 122, the player not only acquires a predetermined prize ball, but also acquires the opportunity to acquire the right to receive various game benefits.

また、第1固定始動口120A、第2始動口122および普図作動口125は、遊技球が常時入球可能に開口した固定始動口で構成される。一方、第1可変始動口120Bには、可動片120bが開閉可能に設けられており、この可動片120bの状態に応じて、第1可変始動口120Bへの遊技球の進入容易性が変化する可変始動口で構成されている。具体的には、可動片120bは、通常、閉状態に維持されており、この間は、第1可変始動口120Bへの遊技球の入球が困難もしくは不可能となる。 The first fixed starting port 120A, the second starting port 122 and the normal operating port 125 are configured as fixed starting ports that are always open to allow game balls to enter. On the other hand, the first variable starting port 120B is provided with a movable piece 120b that can be opened and closed, and is configured as a variable starting port in which the ease with which game balls can enter the first variable starting port 120B changes depending on the state of this movable piece 120b. Specifically, the movable piece 120b is normally maintained in a closed state, and during this time it is difficult or impossible for game balls to enter the first variable starting port 120B.

これに対して、遊技領域116(第2遊技領域116b)に設けられたゲート124を遊技球が通過するか、普図作動口125に遊技球が入球すると、後述する普通図柄の抽選が行われ、この抽選によって当たりに当選すると、可動片120bが所定時間、開状態に制御される。可動片120bが開状態になると、第1可変始動口120Bへの遊技球の入球が可能となる。このように、可動片120bは、第1可変始動口120Bへの遊技球の入球を可能とする開状態、および、開状態よりも第1可変始動口120Bへの遊技球の入球が困難もしくは不可能となる閉状態に変移する可動部材(始動可変入賞装置)として機能する。 In response to this, when a game ball passes through the gate 124 provided in the game area 116 (second game area 116b) or enters the normal symbol operation port 125, a lottery for a normal symbol, which will be described later, is held, and if a winning symbol is selected in this lottery, the movable piece 120b is controlled to an open state for a predetermined time. When the movable piece 120b is in an open state, it becomes possible for the game ball to enter the first variable start port 120B. In this way, the movable piece 120b functions as a movable member (start variable winning device) that transitions between an open state that allows the game ball to enter the first variable start port 120B, and a closed state that makes it more difficult or impossible for the game ball to enter the first variable start port 120B than in the open state.

なお、第1固定始動口120Aは、第1遊技領域116aを流下する遊技球のみが入球可能となり、第1可変始動口120Bおよび第2始動口122は、第2遊技領域116bを流下する遊技球のみが入球可能となる位置に配されている。なお、第1固定始動口120Aは、第2遊技領域116bを流下する遊技球が入球してもよいが、この場合には、第1遊技領域116aを流下する遊技球の方が、第2遊技領域116bを流下する遊技球よりも入球しやすい位置に配することが望ましい。 The first fixed starting port 120A is located at a position where only game balls flowing down the first game area 116a can enter, and the first variable starting port 120B and the second starting port 122 are located at a position where only game balls flowing down the second game area 116b can enter. The first fixed starting port 120A may be used to allow game balls flowing down the second game area 116b to enter, but in this case, it is desirable to place it at a position where game balls flowing down the first game area 116a can enter more easily than game balls flowing down the second game area 116b.

同様に、第1可変始動口120Bおよび第2始動口122は、第1遊技領域116aを流下する遊技球が入球してもよいが、この場合には、第2遊技領域116bを流下する遊技球の方が、第1遊技領域116aを流下する遊技球よりも入球しやすい位置に配することが望ましい。いずれにしても、第1固定始動口120Aは、少なくとも第1遊技領域116aを流下する遊技球が入球可能な位置に配され、第1可変始動口120Bおよび第2始動口122は、少なくとも第2遊技領域116bを流下する遊技球が入球可能な位置に配されるとよい。 Similarly, the first variable starting port 120B and the second starting port 122 may be entered by game balls flowing down the first game area 116a, but in this case, it is desirable to arrange them in a position where game balls flowing down the second game area 116b can enter more easily than game balls flowing down the first game area 116a. In any case, it is desirable that the first fixed starting port 120A is arranged in a position where at least game balls flowing down the first game area 116a can enter, and the first variable starting port 120B and the second starting port 122 are arranged in a position where at least game balls flowing down the second game area 116b can enter.

さらに、第2遊技領域116bには、第1大入賞口126および第2大入賞口128が設けられている。第1大入賞口126および第2大入賞口128は、第2遊技領域116bを流下する遊技球のみが入球可能な位置に配される。ただし、第1大入賞口126および第2大入賞口128は、第1遊技領域116aおよび第2遊技領域116bを流下するいずれの遊技球も入球可能に配されてもよい。 Furthermore, the second game area 116b is provided with a first large prize opening 126 and a second large prize opening 128. The first large prize opening 126 and the second large prize opening 128 are positioned so that only game balls flowing down the second game area 116b can enter the opening. However, the first large prize opening 126 and the second large prize opening 128 may be positioned so that any game balls flowing down the first game area 116a and the second game area 116b can enter the opening.

第1大入賞口126には、開閉扉126bが開閉可能に設けられており、通常、開閉扉126bが第1大入賞口126を閉鎖して、第1大入賞口126への遊技球の入球が不可能となっている。具体的には、開閉扉126bは、閉鎖状態において、遊技盤108の盤面と面一の状態となり、第1大入賞口126の前を遊技球が流下する。これに対して、前述の大役遊技が実行されると、開閉扉126bが開放されて遊技球を第1大入賞口126に導く受け皿として機能し、第1大入賞口126への遊技球の入球が可能となる。そして、第1大入賞口126に遊技球が入球すると、所定の賞球が遊技者に払い出される。 The first large prize opening 126 is provided with an opening/closing door 126b that can be opened and closed. Normally, the opening/closing door 126b closes the first large prize opening 126, making it impossible for game balls to enter the first large prize opening 126. Specifically, when the opening/closing door 126b is closed, it is flush with the surface of the game board 108, and game balls flow down in front of the first large prize opening 126. In contrast, when the aforementioned big prize game is played, the opening/closing door 126b opens and functions as a tray that guides game balls to the first large prize opening 126, making it possible for game balls to enter the first large prize opening 126. Then, when a game ball enters the first large prize opening 126, a predetermined number of prize balls are paid out to the player.

第2大入賞口128は、第2遊技領域116bにおいて、第1大入賞口126の下方に設けられる。第2大入賞口128は、可動片128bを備えており、通常、可動片128bが閉状態に維持されている。これに対して、後述の小当たり遊技が実行されると、可動片128bが開状態に制御され、第2大入賞口128への遊技球の入球が可能となる。なお、以下では、第1大入賞口126および第2大入賞口128をまとめて単に大入賞口ともよぶ。 The second large prize opening 128 is provided below the first large prize opening 126 in the second game area 116b. The second large prize opening 128 is equipped with a movable piece 128b, which is normally maintained in a closed state. In contrast, when a small prize game, which will be described later, is played, the movable piece 128b is controlled to an open state, allowing a game ball to enter the second large prize opening 128. In the following, the first large prize opening 126 and the second large prize opening 128 are collectively referred to simply as the large prize openings.

図3は、同時回し参考例に係る第2大入賞口128を説明する図である。第2遊技領域116bには、遊技盤108の正面側に突出する構造物129が設けられている。この構造物129は、遊技機100の左右方向と前後方向とに位置する四辺、および、底辺が囲繞されており、上部に開口が形成されている。この構造物129の上部に形成される開口が、第2大入賞口128となる。構造物129の上部には、可動片128bが設けられており、通常、図3(a)に示すように、可動片128bは、第2大入賞口128を閉鎖する閉状態に維持されている。 Figure 3 is a diagram illustrating the second large prize opening 128 in the simultaneous spin reference example. A structure 129 protruding from the front side of the game board 108 is provided in the second game area 116b. This structure 129 is surrounded on all four sides in the left-right and front-back directions of the gaming machine 100, as well as on the bottom side, and has an opening formed at the top. The opening formed at the top of this structure 129 becomes the second large prize opening 128. A movable piece 128b is provided at the top of the structure 129, and normally, as shown in Figure 3(a), the movable piece 128b is maintained in a closed state that closes the second large prize opening 128.

可動片128bは、遊技機100の上方に臨むようにして、遊技球が転動、流下する遊技領域116に突出している。したがって、可動片128bが閉状態に維持されている場合には、遊技領域116(第2遊技領域116b)を流下する遊技球が、可動片128b上に落下することとなる。ここで、構造物129は、底辺が水平方向に略平行であり、遊技機100の右側の側面は、左側の側面よりも高さ方向に僅かに長い寸法関係となっている。したがって、第2大入賞口128は、遊技機100の左側が右側よりも僅かに低く、閉状態に維持された可動片128bは、遊技機100の左側が右側よりも僅かに低い位置になるように傾斜している。そのため、可動片128bが閉状態にあるときには、図3(a)に矢印で示すように、可動片128b上に落下した遊技球が、可動片128b上を右方から左方へとゆっくりと転動することになる。 The movable piece 128b protrudes into the game area 116 where the game balls roll and flow down, facing above the game machine 100. Therefore, when the movable piece 128b is maintained in a closed state, the game balls flowing down the game area 116 (second game area 116b) fall onto the movable piece 128b. Here, the structure 129 has a base that is approximately parallel to the horizontal direction, and the right side of the game machine 100 is slightly longer in the height direction than the left side. Therefore, the second large winning opening 128 is slightly lower on the left side of the game machine 100 than the right side, and the movable piece 128b maintained in a closed state is inclined so that the left side of the game machine 100 is slightly lower than the right side. Therefore, when the movable piece 128b is in the closed state, the game ball that falls onto the movable piece 128b will roll slowly from right to left on the movable piece 128b, as shown by the arrow in Figure 3 (a).

そして、後述の小当たり遊技が実行されると、可動片128bは、第2大入賞口128を開放する開状態に変移する。ここで、可動片128bは、図3(b)に示すように、遊技盤108の背面側に向けてスライドすることで、閉状態から開状態へと変移する。その結果、閉状態から開状態に変移する際に、可動片128b上を転動している遊技球が、第2大入賞口128内に自重で落下する。 When a small win game, which will be described later, is executed, the movable piece 128b transitions to an open state that opens the second large winning opening 128. Here, the movable piece 128b transitions from a closed state to an open state by sliding toward the rear side of the game board 108, as shown in FIG. 3(b). As a result, when transitioning from the closed state to the open state, the game ball rolling on the movable piece 128b falls under its own weight into the second large winning opening 128.

このように、同時回し参考例では、可動片128bを僅かに傾斜させ、可動片128b上を遊技球が転動する時間を長く確保する。そして、可動片128bが閉状態から開状態に変移することで、可動片128b上を転動している遊技球を第2大入賞口128内に導く。上記の構成により、可動片128bを開状態に維持する時間を僅かに設定したとしても、第2大入賞口128内に所定数の遊技球を導くことができる。換言すれば、第2大入賞口128内に所定数の遊技球を入球させるために必要となる、可動片128bを開状態に維持する時間を短時間とすることができる。なお、構造物129の背面には、遊技盤108の背面側に連通する孔が形成されており、第2大入賞口128に入球した遊技球は、遊技盤108の背面側に排出される。そして、第2大入賞口128に遊技球が入球すると、所定の賞球が遊技者に払い出される。 In this way, in the simultaneous rotation reference example, the movable piece 128b is slightly tilted to ensure a long time for the game ball to roll on the movable piece 128b. Then, the movable piece 128b transitions from a closed state to an open state, leading the game ball rolling on the movable piece 128b into the second large winning opening 128. With the above configuration, even if the time for which the movable piece 128b is kept in the open state is set to be short, a predetermined number of game balls can be led into the second large winning opening 128. In other words, the time for which the movable piece 128b is kept in the open state, which is necessary to allow a predetermined number of game balls to enter the second large winning opening 128, can be shortened. In addition, a hole that communicates with the back side of the game board 108 is formed on the back side of the structure 129, and the game balls that enter the second large winning opening 128 are discharged to the back side of the game board 108. When a game ball enters the second large prize opening 128, a certain number of prize balls are paid out to the player.

なお、ここでは、第2大入賞口128の構成について説明したが、第1可変始動口120Bも、第2大入賞口128と同様の構成である。すなわち、第1可変始動口120Bの可動片120bは、閉状態において、遊技盤108の前面側に突出しており、可動片120b上を遊技球が転動する。そして、可動片120bの開状態では、可動片120bが遊技盤108の背面側にスライドし、第1可変始動口120Bへの遊技球の入球が可能となる。ただし、図2に示すように、可動片128bは、遊技機100の正面視で右側が左側よりも高い位置にあるのに対して、可動片120bは、遊技機100の正面視で左側が右側よりも高い位置にある。 Here, the configuration of the second large winning opening 128 has been described, but the first variable starting opening 120B has the same configuration as the second large winning opening 128. That is, the movable piece 120b of the first variable starting opening 120B protrudes from the front side of the game board 108 in the closed state, and the game ball rolls on the movable piece 120b. And, when the movable piece 120b is in the open state, the movable piece 120b slides to the rear side of the game board 108, and the game ball can enter the first variable starting opening 120B. However, as shown in FIG. 2, the right side of the movable piece 128b is higher than the left side when viewed from the front of the gaming machine 100, whereas the left side of the movable piece 120b is higher than the right side when viewed from the front of the gaming machine 100.

ここで、第2遊技領域116bの盤面構成について詳述する。同時回し参考例では、第2遊技領域116bの最上部に、第2始動口122とゲート124とが並列して配置されている。第2遊技領域116bに導かれた遊技球は、全て、第2始動口122に入球するか、ゲート124を通過して下方に流下する。同時回し参考例では、第2始動口122は、1個の遊技球の入球に対して1個の遊技球が賞球として払い出される。 Now, the board configuration of the second game area 116b will be described in detail. In the simultaneous spin reference example, the second start hole 122 and the gate 124 are arranged in parallel at the top of the second game area 116b. All game balls guided to the second game area 116b either enter the second start hole 122 or pass through the gate 124 and flow downward. In the simultaneous spin reference example, one game ball is paid out as a prize ball for each game ball that enters the second start hole 122.

第2始動口122に遊技球が入球すると、賞球として1個の遊技球が払い出されるとともに、大役遊技あるいは小当たり遊技の実行有無等を決定する抽選が行われる。また、ゲート124を遊技球が通過すると、第1可変始動口120B(可動片120b)を開状態とするか否かを決定する抽選が行われる。 When a game ball enters the second starting port 122, one game ball is paid out as a prize ball, and a lottery is held to determine whether a big prize game or a small prize game will be played. In addition, when the game ball passes through the gate 124, a lottery is held to determine whether the first variable starting port 120B (movable piece 120b) will be opened.

第2始動口122およびゲート124の直下には、第1大入賞口126が設けられている。第1大入賞口126が開状態にある場合には、ゲート124を通過して下方に流下した遊技球の全てが第1大入賞口126に入球するように配置されている。同時回し参考例では、第1大入賞口126は、大役遊技においてのみ開放される。つまり、第1大入賞口126は、大役遊技専用の大入賞口と言える。大役遊技中に第1大入賞口126に遊技球が入球すると、1個の遊技球の入球に対して2個以上の所定数(ここでは15個)の遊技球が賞球として払い出される。 Directly below the second starting hole 122 and the gate 124 is a first large prize opening 126. When the first large prize opening 126 is open, it is positioned so that all game balls that pass through the gate 124 and flow downward enter the first large prize opening 126. In the simultaneous spin reference example, the first large prize opening 126 is only opened during the big prize game. In other words, the first large prize opening 126 can be said to be a large prize opening exclusively for the big prize game. When a game ball enters the first large prize opening 126 during the big prize game, a predetermined number of game balls (2 or more in number, 15 in this case) are paid out as prize balls for each game ball that enters.

第1大入賞口126の下方には第1可変始動口120Bが設けられている。また、第1大入賞口126と第1可変始動口120Bとの間にはアウト口131が設けられている。アウト口131は、遊技領域116から遊技球を排出するための通路の入口であり、アウト口131に遊技球が入球したとしても、賞球が払い出されることはない。 A first variable start opening 120B is provided below the first large prize opening 126. In addition, an outlet 131 is provided between the first large prize opening 126 and the first variable start opening 120B. The outlet 131 is the entrance to a passage for discharging game balls from the game area 116, and even if a game ball enters the outlet 131, no prize balls will be paid out.

第2遊技領域116bには、第1大入賞口126よりも下方に流下した遊技球の多く(例えば9割以上)が、可動片120b上に落下するように釘が配されている。また、これらの釘により、第1大入賞口126よりも下方に流下した遊技球の一部(例えば1%~10%)が、アウト口131に導かれる。 In the second game area 116b, nails are arranged so that most (e.g., 90% or more) of the game balls that flow down below the first large winning opening 126 fall onto the movable piece 120b. In addition, these nails guide a portion (e.g., 1% to 10%) of the game balls that flow down below the first large winning opening 126 to the outlet 131.

第1可変始動口120Bの閉状態では、可動片120b上を遊技球が転動する。可動片120b上を遊技球が転動しているときに可動片120bが開状態になると、可動片120b上の遊技球は全て第1可変始動口120B内に導かれる。第1可変始動口120Bに遊技球が入球すると、1個の遊技球の入球に対して1個の遊技球が賞球として払い出されるとともに、大役遊技あるいは小当たり遊技の実行有無等を決定する抽選が行われる。 When the first variable start opening 120B is in a closed state, the game ball rolls on the movable piece 120b. If the movable piece 120b opens while the game ball is rolling on the movable piece 120b, all the game balls on the movable piece 120b are guided into the first variable start opening 120B. When a game ball enters the first variable start opening 120B, one game ball is paid out as a prize ball for each game ball that enters, and a lottery is held to determine whether or not a big prize game or a small prize game will be played.

第1可変始動口120Bに入球しなかった遊技球は、可動片120b上から遊技機100の正面視で右側に落下する。第1可変始動口120Bの下方には、第2大入賞口128が設けられており、可動片120b上から落下した遊技球の殆どが、第2大入賞口128の可動片128b上を転動する。可動片128b上の遊技球は、可動片128bの傾斜により、遊技機100の正面視で右側から左側に向けてゆっくりと転動する。 Gaming balls that do not enter the first variable start opening 120B fall from above the movable piece 120b to the right side when viewed from the front of the gaming machine 100. Below the first variable start opening 120B, the second large prize opening 128 is provided, and most of the gaming balls that fall from above the movable piece 120b roll on the movable piece 128b of the second large prize opening 128. Due to the inclination of the movable piece 128b, the gaming balls on the movable piece 128b slowly roll from the right side to the left side when viewed from the front of the gaming machine 100.

詳しくは後述するが、同時回し参考例では、第2大入賞口128は、小当たり遊技においてのみ開放される。つまり、第2大入賞口128は、小当たり遊技専用の大入賞口と言える。可動片128b上を遊技球が転動しているときに可動片128bが開状態になると、可動片128b上の遊技球は全て第2大入賞口128内に導かれる。小当たり遊技中に第2大入賞口128に遊技球が入球すると、1個の遊技球の入球に対して2個以上の所定数(ここでは15個)の遊技球が賞球として払い出される。 In the simultaneous spin reference example, which will be described in more detail later, the second large prize opening 128 is only opened during small prize play. In other words, the second large prize opening 128 can be said to be a large prize opening exclusively for small prize play. When the movable piece 128b opens while a game ball is rolling on it, all game balls on the movable piece 128b are guided into the second large prize opening 128. When a game ball enters the second large prize opening 128 during a small prize play, a predetermined number of game balls (2 or more in number, 15 in this case) are paid out as prize balls for each game ball that enters.

第2大入賞口128の左下方には、普図作動口125が設けられている。ここでは、第2大入賞口128上から下方に落下した遊技球の殆ど全てが普図作動口125に入球するように、第2遊技領域116bに釘が配されている。同時回し参考例では、普図作動口125は、1個の遊技球の入球に対して1個の遊技球が賞球として払い出される「特定の入賞口」を構成している。また、普図作動口125に遊技球が入球すると、ゲート124を遊技球が通過した場合と同様に、第1可変始動口120B(可動片120b)を開状態とするか否かを決定する抽選が行われる。 The normal ball operation port 125 is provided to the lower left of the second large winning port 128. Here, nails are arranged in the second game area 116b so that almost all game balls that fall downward from above the second large winning port 128 enter the normal ball operation port 125. In the simultaneous spin reference example, the normal ball operation port 125 constitutes a "specific winning port" from which one game ball is paid out as a prize ball for each game ball that enters. In addition, when a game ball enters the normal ball operation port 125, a lottery is held to determine whether or not the first variable start port 120B (movable piece 120b) is opened, just as when a game ball passes through the gate 124.

なお、遊技領域116の最下部には、一般入賞口118、第1始動口120、第2始動口122、普図作動口125、および、大入賞口のいずれにも入球しなかった遊技球を、遊技領域116から遊技盤108の背面側に排出する排出口130が設けられている。 At the bottom of the game area 116, there is a discharge port 130 that discharges game balls that do not enter the general winning hole 118, the first starting hole 120, the second starting hole 122, the general operation hole 125, or the big winning hole from the game area 116 to the back side of the game board 108.

そして、遊技機100には、遊技の進行中等に演出を行う演出装置として、液晶表示装置からなる演出表示装置200、可動装置からなる演出役物装置202、さまざまな点灯態様や発光色に制御されるランプからなる演出照明装置204、スピーカからなる音声出力装置206、遊技者の操作を受け付ける演出操作装置208が設けられている。 The gaming machine 100 is equipped with a performance display device 200 consisting of a liquid crystal display device, a performance prop device 202 consisting of a movable device, a performance lighting device 204 consisting of lamps that can be controlled to various lighting modes and emission colors, a sound output device 206 consisting of a speaker, and a performance operation device 208 that accepts operations by the player, as performance devices that perform performances while the game is in progress.

演出表示装置200は、画像を表示する画像表示部からなるメイン演出表示部200aを備えており、このメイン演出表示部200aを、遊技盤108の略中央部分において、遊技機100の正面側から視認可能に配置している。このメイン演出表示部200aには、図示のように、3つの演出図柄210a、210b、210cが変動表示される等、種々の演出が実行されることとなる。 The effect display device 200 is equipped with a main effect display section 200a consisting of an image display section that displays images, and this main effect display section 200a is arranged in the approximate center of the game board 108 so that it can be seen from the front side of the gaming machine 100. As shown in the figure, this main effect display section 200a executes various effects, such as the display of three effect patterns 210a, 210b, and 210c in a variable manner.

演出役物装置202は、メイン演出表示部200aよりも前面に配置され、通常、遊技盤108の背面側の原点位置において、複数の構成部材に分割された状態で退避しており、遊技者が視認できないようになっている。そして、上記の演出図柄210a、210b、210cの変動表示中などに、アクチュエータの駆動により、メイン演出表示部200aの前面にある可動位置まで各構成部材が移動すると、メイン演出表示部200aの前面で各構成部材が合体して、遊技者に大当たりの期待感を付与する。 The performance device 202 is located in front of the main performance display unit 200a, and is usually separated into multiple components and stored at the origin position on the back side of the game board 108 so that it cannot be seen by the player. Then, when the actuator is driven to move each component to a movable position in front of the main performance display unit 200a during the changing display of the performance patterns 210a, 210b, 210c, the components combine in front of the main performance display unit 200a, giving the player a sense of anticipation of a big win.

演出照明装置204は、演出役物装置202や遊技盤108等に設けられており、メイン演出表示部200aに表示される画像等に合わせて、さまざまに点灯制御される。 The lighting device 204 is provided on the prop device 202, the game board 108, etc., and is controlled to light up in various ways in accordance with the images displayed on the main display unit 200a.

音声出力装置206は、前枠106の上部位置や外枠102の最下部位置に設けられ、メイン演出表示部200aに表示される画像等に合わせて、遊技機100の正面側に向けてさまざまな音声を出力する。 The audio output device 206 is provided at the top of the front frame 106 or at the bottom of the outer frame 102, and outputs various sounds toward the front of the gaming machine 100 in accordance with the images displayed on the main performance display section 200a.

演出操作装置208は、遊技者の押下操作を受け付けるボタンで構成され、遊技機100の幅方向略中央位置であって、かつ、透過板110よりも下方位置に設けられている。この演出操作装置208は、メイン演出表示部200aに表示される画像等に合わせて有効化されるものであり、操作有効時間内に遊技者の操作を受け付けると、当該操作に応じて、さまざまな演出が実行される。 The effect operation device 208 is composed of buttons that are pressed by the player, and is located in approximately the center of the gaming machine 100 in the width direction, and below the transparent plate 110. This effect operation device 208 is activated in accordance with the images displayed on the main effect display section 200a, and when a player's operation is received within the effective operation time, various effects are executed according to the operation.

なお、図中符号132は、遊技機100から払い出される賞球や、遊技球貸出装置から貸し出される遊技球が導かれる上皿であり、この上皿132が遊技球で一杯になると、遊技球は下皿134に導かれることとなる。また、この下皿134の底面には、当該下皿134から遊技球を排出するための球抜き孔(不図示)が形成されている。この球抜き孔は、通常、開閉板(不図示)によって閉じられているが、球抜きつまみ134aを押下することにより、当該球抜きつまみ134aと一体となって開閉板がスライドし、球抜き孔から下皿134の下方に遊技球を排出することが可能となっている。 The reference symbol 132 in the figure indicates an upper tray to which prize balls paid out from the gaming machine 100 and gaming balls dispensed from the gaming ball dispensing device are guided, and when this upper tray 132 is full of gaming balls, the gaming balls are guided to the lower tray 134. A ball ejection hole (not shown) is formed in the bottom surface of this lower tray 134 for ejecting gaming balls from the lower tray 134. This ball ejection hole is normally closed by an opening/closing plate (not shown), but by pressing down on the ball ejection knob 134a, the opening/closing plate slides together with the ball ejection knob 134a, making it possible to eject gaming balls from the ball ejection hole to below the lower tray 134.

また、遊技盤108には、遊技領域116の外方であって、かつ、遊技者が視認可能な位置に、第1特別図柄表示器160、第2特別図柄表示器162、第1特別図柄保留表示器164、第2特別図柄保留表示器166、普通図柄表示器168、普通図柄保留表示器170、右打ち報知表示器172が設けられている。これら各表示器160~172は、遊技に係る種々の状況を表示するための装置であるが、その詳細については後述する。 The game board 108 is provided with a first special symbol display 160, a second special symbol display 162, a first special symbol reserved display 164, a second special symbol reserved display 166, a normal symbol display 168, a normal symbol reserved display 170, and a right hit notification display 172, located outside the game area 116 and in a position visible to the player. Each of these displays 160-172 is a device for displaying various game-related situations, and will be described in detail below.

(制御手段の内部構成)
図4は、同時回し参考例に係る遊技の進行を制御する制御手段の内部構成を示すブロック図である。
(Internal configuration of control means)
FIG. 4 is a block diagram showing the internal configuration of a control means for controlling the progress of a game in the simultaneous spin reference example.

主制御基板300は遊技の基本動作を制御する。この主制御基板300は、メインCPU300a、メインROM300b、メインRAM300cを備えている。メインCPU300aは、各検出スイッチやタイマからの入力信号に基づいて、メインROM300bに格納されたプログラムを読み出して演算処理を行うとともに、各装置や表示器を直接制御したり、あるいは演算処理の結果に応じて他の基板にコマンドを送信したりする。メインRAM300cは、メインCPU300aの演算処理時におけるデータのワークエリアとして機能する。 The main control board 300 controls the basic operations of the game. This main control board 300 is equipped with a main CPU 300a, a main ROM 300b, and a main RAM 300c. The main CPU 300a reads out the programs stored in the main ROM 300b and performs arithmetic processing based on input signals from each detection switch and timer, and also directly controls each device and display, or sends commands to other boards depending on the results of the arithmetic processing. The main RAM 300c functions as a work area for data during arithmetic processing by the main CPU 300a.

上記主制御基板300には、一般入賞口118に遊技球が入球したことを検出する一般入賞口検出スイッチ118s、第1固定始動口120Aに遊技球が入球したことを検出する第1固定始動口検出スイッチ120As、第1可変始動口120Bに遊技球が入球したことを検出する第1可変始動口検出スイッチ120Bs、第2始動口122に遊技球が入球したことを検出する第2始動口検出スイッチ122s、ゲート124を遊技球が通過したことを検出するゲート検出スイッチ124s、普図作動口125に遊技球が入球したことを検出する普図作動口検出スイッチ125s、第1大入賞口126に遊技球が入球したことを検出する第1大入賞口検出スイッチ126s、第2大入賞口128に遊技球が入球したことを検出する第2大入賞口検出スイッチ128sが接続されており、これら各検出スイッチから主制御基板300に検出信号が入力されるようになっている。 The main control board 300 includes a general winning hole detection switch 118s for detecting when a game ball has entered the general winning hole 118, a first fixed starting hole detection switch 120As for detecting when a game ball has entered the first fixed starting hole 120A, a first variable starting hole detection switch 120Bs for detecting when a game ball has entered the first variable starting hole 120B, a second starting hole detection switch 122s for detecting when a game ball has entered the second starting hole 122, and a second starting hole detection switch 122s for detecting when a game ball has passed through the gate 124. A gate detection switch 124s that detects when a ball has passed the gate, a normal operation port detection switch 125s that detects when a game ball has entered the normal operation port 125, a first large prize opening detection switch 126s that detects when a game ball has entered the first large prize opening 126, and a second large prize opening detection switch 128s that detects when a game ball has entered the second large prize opening 128 are connected, and detection signals are input from each of these detection switches to the main control board 300.

また、主制御基板300には、第1可変始動口120Bの可動片120bを作動する普通電動役物ソレノイド120cと、第1大入賞口126を開閉する開閉扉126bを作動する第1大入賞口ソレノイド126cと、第2大入賞口128を開閉する可動片128bを作動する第2大入賞口ソレノイド128cと、が接続されており、主制御基板300によって、第1可変始動口120B、第1大入賞口126、第2大入賞口128の開閉制御がなされるようになっている。 The main control board 300 is also connected to a normal electric device solenoid 120c that operates the movable piece 120b of the first variable start opening 120B, a first large prize opening solenoid 126c that operates the opening and closing door 126b that opens and closes the first large prize opening 126, and a second large prize opening solenoid 128c that operates the movable piece 128b that opens and closes the second large prize opening 128. The main control board 300 controls the opening and closing of the first variable start opening 120B, the first large prize opening 126, and the second large prize opening 128.

さらに、主制御基板300には、第1特別図柄表示器160、第2特別図柄表示器162、第1特別図柄保留表示器164、第2特別図柄保留表示器166、普通図柄表示器168、普通図柄保留表示器170、右打ち報知表示器172が接続されており、主制御基板300によって、これら各表示器の表示制御がなされるようになっている。 Furthermore, the first special pattern display 160, the second special pattern display 162, the first special pattern reserved display 164, the second special pattern reserved display 166, the normal pattern display 168, the normal pattern reserved display 170, and the right hit notification display 172 are connected to the main control board 300, and the display of each of these displays is controlled by the main control board 300.

さらに、遊技盤108の背面には、設定変更スイッチ180sが設けられている。設定変更スイッチ180sは、専用の鍵によってアクセス可能に構成されている。設定変更スイッチ180sがオンしていることを条件として、設定値を変更、確認する操作が可能となる。詳しくは後述するが、同時回し参考例の遊技機100は、有利度合いが異なる6段階の設定値のいずれかが設定値バッファに登録設定値として記憶され、記憶されている登録設定値に応じて遊技が進行する。なお、ここでは、設定値が6段階であることとするが、設定値は高設定および低設定の2段階のみが設けられてもよいし、他の複数段階で設けられてもよい。さらには、設定値は必須ではなく、有利度合いが変更されなくてもよい。 Furthermore, a setting change switch 180s is provided on the back of the game board 108. The setting change switch 180s is configured to be accessible with a dedicated key. When the setting change switch 180s is turned on, the setting value can be changed and confirmed. As will be described in detail later, in the gaming machine 100 of the simultaneous rotation reference example, one of six setting values with different degrees of advantage is stored as a registered setting value in the setting value buffer, and the game progresses according to the stored registered setting value. Note that, although it is assumed here that there are six setting values, there may be only two setting values, a high setting and a low setting, or there may be multiple other settings. Furthermore, a setting value is not essential, and the degree of advantage does not have to be changed.

また、遊技盤108の背面には、RAMクリアボタンが押下操作可能に設けられており、このRAMクリアボタンの押下操作がRAMクリアスイッチ182sによって検出される。RAMクリアスイッチ182sは主制御基板300に接続されており、RAMクリアスイッチ182sから主制御基板300にRAMクリア操作信号が入力される。電源投入時にRAMクリアスイッチ182sからRAMクリア操作信号が入力されている場合、メインCPU300aは、メインRAM300cをクリアする。 A RAM clear button is provided on the back of the game board 108 so that it can be pressed, and pressing this RAM clear button is detected by the RAM clear switch 182s. The RAM clear switch 182s is connected to the main control board 300, and a RAM clear operation signal is input from the RAM clear switch 182s to the main control board 300. If a RAM clear operation signal is input from the RAM clear switch 182s when the power is turned on, the main CPU 300a clears the main RAM 300c.

また、遊技盤108の背面には、性能表示モニタ184が設けられている。主制御基板300により、性能表示モニタ184に登録設定値やベース比率が表示される。 In addition, a performance display monitor 184 is provided on the back of the game board 108. The main control board 300 displays the registered setting values and base ratios on the performance display monitor 184.

また、同時回し参考例の遊技機100は、主に第1始動口120または第2始動口122への遊技球の入球によって開始される特別遊技と、ゲート124への遊技球の通過、あるいは、普図作動口125への遊技球の入球によって開始される普通遊技とに大別される。そして、主制御基板300のメインROM300bには、特別遊技および普通遊技を進行するための種々のプログラムや、各種の遊技に必要なデータ、テーブルが記憶されている。 The gaming machine 100 of the simultaneous spin reference example is broadly divided into special games that are started mainly by a game ball entering the first start port 120 or the second start port 122, and regular games that are started by a game ball passing through the gate 124 or entering the regular operation port 125. The main ROM 300b of the main control board 300 stores various programs for progressing the special games and regular games, as well as data and tables required for various games.

また、主制御基板300には、払出制御基板310および副制御基板330が接続されている。払出制御基板310は、遊技球を発射させるための制御、および、賞球を払い出すための制御を行う。この払出制御基板310も、CPU、ROM、RAMを備えており、主制御基板300に対して双方向に通信可能に接続されている。この払出制御基板310には遊技情報出力端子板312が接続されており、主制御基板300から出力される遊技進行上の種々の情報が、払出制御基板310および遊技情報出力端子板312を介して、遊技店のホールコンピュータ等に出力されることとなる。 The main control board 300 is also connected to a payout control board 310 and a sub-control board 330. The payout control board 310 controls the launching of game balls and the payout of prize balls. This payout control board 310 also has a CPU, ROM, and RAM, and is connected to the main control board 300 so that it can communicate in both directions. A game information output terminal board 312 is connected to this payout control board 310, and various information on the progress of the game output from the main control board 300 is output to the hall computer of the gaming facility via the payout control board 310 and the game information output terminal board 312.

また、払出制御基板310には、貯留部に貯留された遊技球を賞球として遊技者に払い出すための払出モータ314が接続されている。払出制御基板310は、主制御基板300から送信された払出個数指定コマンドに基づいて払出モータ314を制御して所定の賞球を遊技者に払い出すように制御する。このとき、払い出された遊技球数が払出球計数スイッチ316sによって検出され、払い出すべき賞球が遊技者に払い出されたかが把握されるようになっている。 The payout control board 310 is also connected to a payout motor 314 for paying out the game balls stored in the storage section to the player as prize balls. The payout control board 310 controls the payout motor 314 based on a payout number designation command sent from the main control board 300 to control it so that a specified number of prize balls are paid out to the player. At this time, the number of paid out game balls is detected by a payout ball count switch 316s, and it is possible to know whether the prize balls to be paid out have been paid out to the player.

また、払出制御基板310には、下皿134の満タン状態を検出する皿満タン検出スイッチ318sが接続されている。この皿満タン検出スイッチ318sは、賞球として払い出される遊技球を下皿134に導く通路に設けられており、遊技球検出信号が払出制御基板310に入力されるようになっている。 In addition, a tray full detection switch 318s that detects the full state of the lower tray 134 is connected to the payout control board 310. This tray full detection switch 318s is provided in a passage that guides the game balls paid out as prize balls to the lower tray 134, and a game ball detection signal is input to the payout control board 310.

そして、下皿134に所定量以上の遊技球が貯留されて満タン状態になると、下皿134に向かう通路内に遊技球が滞留し、皿満タン検出スイッチ318sから払出制御基板310に向けて、遊技球検出信号が連続的に入力される。払出制御基板310は、遊技球検出信号が所定時間連続して入力された場合に、下皿134が満タン状態であると判断し、皿満タンコマンドを主制御基板300に送信する。一方、皿満タンコマンドを送信した後、遊技球検出信号の連続入力が途絶えた場合には、満タン状態が解除されたと判断し、皿満タン解除コマンドを主制御基板300に送信する。 When the lower tray 134 is filled to capacity with more than a predetermined amount of game balls, game balls become trapped in the passageway leading to the lower tray 134, and game ball detection signals are continuously input from the full tray detection switch 318s to the payout control board 310. If the game ball detection signals are continuously input for a predetermined period of time, the payout control board 310 determines that the lower tray 134 is full, and sends a full tray command to the main control board 300. On the other hand, if the continuous input of the game ball detection signals stops after sending the full tray command, it determines that the full tray state has been released, and sends a full tray release command to the main control board 300.

また、払出制御基板310には、遊技球の発射制御を行う発射制御回路320が設けられている。払出制御基板310には、操作ハンドル112に設けられ、当該操作ハンドル112に遊技者が触れたことを検出するタッチセンサ112sと、操作ハンドル112の操作角度を検出する操作ボリューム112aと、が接続されている。そして、タッチセンサ112sおよび操作ボリューム112aから信号が入力されると、発射制御回路320において、遊技球発射装置に設けられた発射用ソレノイド112cを通電して遊技球を発射させる制御がなされる。 The payout control board 310 is also provided with a launch control circuit 320 that controls the launch of game balls. The payout control board 310 is connected to a touch sensor 112s that is provided on the operating handle 112 and detects when the player touches the operating handle 112, and an operating volume 112a that detects the operating angle of the operating handle 112. When signals are input from the touch sensor 112s and the operating volume 112a, the launch control circuit 320 controls the energization of a launch solenoid 112c provided on the game ball launching device to launch the game balls.

副制御基板330は、主に遊技中や待機中等の各演出を制御する。この副制御基板330は、サブCPU330a、サブROM330b、サブRAM330cを備えており、主制御基板300に対して、当該主制御基板300から副制御基板330への一方向に通信可能に接続されている。サブCPU330aは、主制御基板300から送信されたコマンドやタイマからの入力信号等に基づいて、サブROM330bに格納されたプログラムを読み出して演算処理を行うとともに、演出を実行制御する。このとき、サブRAM330cは、サブCPU330aの演算処理時におけるデータのワークエリアとして機能する。 The sub-control board 330 mainly controls each presentation during play, standby, etc. This sub-control board 330 is equipped with a sub-CPU 330a, a sub-ROM 330b, and a sub-RAM 330c, and is connected to the main control board 300 so that it can communicate in one direction from the main control board 300 to the sub-control board 330. The sub-CPU 330a reads out the programs stored in the sub-ROM 330b and performs calculation processing based on commands sent from the main control board 300 and input signals from a timer, and also controls the execution of the presentation. At this time, the sub-RAM 330c functions as a work area for data during calculation processing by the sub-CPU 330a.

具体的には、副制御基板330では、サブCPU330a、サブROM330b、サブRAM330cが協働して、サブメイン、画像制御部、役物制御部、照明制御部、音声制御部として機能する。サブメインは、各種入力コマンドに応じて、実行する演出の内容を決定したり、演出の実行を管理、統括したりする。画像制御部は、上記メイン演出表示部200aに画像を表示させる画像表示制御を行う。サブROM330bには、メイン演出表示部200aに表示される図柄や背景、字幕等の画像データが多数格納されており、画像制御部が、画像データをサブROM330bから不図示のVRAMに読み出して、メイン演出表示部200aの画像表示を制御する。 Specifically, in the sub-control board 330, the sub-CPU 330a, sub-ROM 330b, and sub-RAM 330c work together to function as a sub-main, image control unit, prop control unit, lighting control unit, and sound control unit. The sub-main determines the content of the performance to be executed in response to various input commands, and manages and coordinates the execution of the performance. The image control unit performs image display control to display images on the main performance display unit 200a. The sub-ROM 330b stores a large amount of image data such as designs, backgrounds, and subtitles to be displayed on the main performance display unit 200a, and the image control unit reads the image data from the sub-ROM 330b to a VRAM (not shown) to control the image display on the main performance display unit 200a.

また、役物制御部は、サブメインによる演出の管理にしたがってアクチュエータを駆動し、演出役物装置202を可動制御する。照明制御部は演出照明装置204を点灯制御する。また、音声制御部は、上記音声出力装置206から音声を出力させる音声出力制御を行う。サブROM330bには、音声出力装置206から出力される音声や楽曲等の音声データが多数格納されており、音声制御部が、音声データをサブROM330bから読み出して、音声出力装置206の音声出力を制御する。 The prop control unit drives actuators in accordance with the performance management by the sub-main, and controls the movement of the prop device 202. The lighting control unit controls the lighting of the performance lighting device 204. The audio control unit controls the audio output to output audio from the audio output device 206. Sub-ROM 330b stores a large amount of audio data, such as audio and music, that is output from the audio output device 206, and the audio control unit reads out the audio data from sub-ROM 330b and controls the audio output of the audio output device 206.

さらに、副制御基板330では、演出操作装置208が押下操作または回転操作されたことを検出する演出操作装置検出スイッチ208sから操作検出信号が入力された際に、所定の演出を実行する。 Furthermore, the sub-control board 330 executes a predetermined performance when an operation detection signal is input from the performance operation device detection switch 208s, which detects that the performance operation device 208 has been pressed or rotated.

なお、各基板には、不図示の電源基板が接続されており、電源基板を介して商用電源から各基板に電力供給がなされている。また、電源基板にはコンデンサからなるバックアップ電源が設けられている。 A power supply board (not shown) is connected to each board, and power is supplied to each board from a commercial power source via the power supply board. The power supply board is also provided with a backup power supply consisting of a capacitor.

図5は、同時回し参考例に係るメインCPU300aが用いるメモリ領域のアドレスマップである。なお、図5において、アドレスは16進数で示しており、「H」は16進数であることを示している。図5に示すように、メインCPU300aが用いるメモリ領域は、メインROM300bに割り当てられたメモリ領域(0000H~2FFFH)と、メインRAM300cに割り当てられたメモリ領域(F000H~F3FFH)とを含んでいる。 Figure 5 is an address map of the memory area used by the main CPU 300a in the simultaneous rotation reference example. Note that in Figure 5, addresses are shown in hexadecimal, with "H" indicating hexadecimal. As shown in Figure 5, the memory area used by the main CPU 300a includes the memory area (0000H to 2FFFH) allocated to the main ROM 300b and the memory area (F000H to F3FFH) allocated to the main RAM 300c.

メインROM300bのメモリ領域は、遊技の進行を制御するためのプログラムおよびデータを格納する使用領域(0000H~1BF3H)と、使用領域以外の領域であって、遊技機規則で定める試験を行うための処理や、性能表示モニタ184を表示するための処理(性能表示モニタ184に表示するベース比率を算出するための処理を含む)を実行するためのプログラムおよびデータを格納する使用外領域(2000H~2BFFH)とが設けられている。 The memory area of the main ROM 300b is divided into a used area (0000H to 1BF3H) that stores programs and data for controlling the progress of the game, and a non-used area (2000H to 2BFFH) that stores programs and data for executing processes for performing tests stipulated by gaming machine regulations and processes for displaying the performance display monitor 184 (including processes for calculating the base ratio to be displayed on the performance display monitor 184).

メインROM300bの使用領域には、遊技の進行を制御するためのプログラムが格納されるプログラム領域(0000H~0A89H)、未使用領域(0A8AH~11FFH)、プログラム以外のデータが格納されるデータ領域(1200H~1BF3H)が設けられている。なお、使用領域は、未使用領域(0A8AH~0FFFH)を含めないようにしてもよい。 The used area of the main ROM 300b includes a program area (0000H-0A89H) in which programs for controlling the progress of the game are stored, an unused area (0A8AH-11FFH), and a data area (1200H-1BF3H) in which data other than programs are stored. Note that the used area does not necessarily have to include the unused area (0A8AH-0FFFH).

メインROM300bの使用外領域には、遊技機規則で定める試験を行うための処理や、性能表示モニタ184を表示するための処理を実行するためのプログラムが格納されるプログラム領域(2000H~27FFH)、これらのプログラム以外のデータが格納されるデータ領域(2800H~2BFFH)が設けられている。 The unused area of the main ROM 300b includes a program area (2000H to 27FFH) that stores programs for executing processes for performing tests stipulated by gaming machine regulations and processes for displaying the performance display monitor 184, and a data area (2800H to 2BFFH) that stores data other than these programs.

また、メインROM300bのメモリ領域には、使用領域および使用外領域以外にも、未使用領域(1A7BH~1DFFH)、プログラムのタイトル、バージョン等の任意のデータが格納されるROMコメント領域(1E00H~1EFFH)、未使用領域(1F00H~1FFFH)、未使用領域(2C00H~2FBFH)、メインCPU300aがプログラムを実行するために必要な情報が格納されるプログラム管理領域(2FC0H~2FFFH)が設けられている。 In addition to the used area and unused area, the memory area of main ROM 300b also includes an unused area (1A7BH-1DFFH), a ROM comment area (1E00H-1EFFH) in which arbitrary data such as the program title and version is stored, an unused area (1F00H-1FFFH), an unused area (2C00H-2FBFH), and a program management area (2FC0H-2FFFH) in which information necessary for main CPU 300a to execute a program is stored.

メインRAM300cのメモリ領域は、遊技の進行を制御するためのプログラムが実行されている際に一時的に用いられる使用領域(F000H~F1FFH)と、使用領域以外の領域であって、遊技機規則で定める試験を行うための処理や、性能表示モニタ184を表示するための処理のプログラムが実行されている際に一時的に用いられる使用外領域(F210H~F228H)とが設けられている。 The memory area of the main RAM 300c is divided into a used area (F000H to F1FFH) that is temporarily used when a program for controlling the progress of the game is being executed, and a non-used area (F210H to F228H) that is an area other than the used area and is temporarily used when a program for processing tests stipulated by the gaming machine regulations or processing for displaying the performance display monitor 184 is being executed.

メインRAM300cの使用領域には、遊技の進行を制御するためのプログラムが実行されている際に一時的に用いられるワーク領域(F000H~F12AH)、未使用領域(F12BH~F1D7H)、遊技の進行を制御するためのプログラムの実行中にデータを一時的に退避させるスタック領域(F1D8H~F1FFH)が設けられている。なお、使用領域は、未使用領域(F12BH~F1D7H)を含めないようにしてもよい。 The used area of the main RAM 300c includes a work area (F000H-F12AH) that is temporarily used when a program for controlling the progress of the game is being executed, an unused area (F12BH-F1D7H), and a stack area (F1D8H-F1FFH) where data is temporarily saved while a program for controlling the progress of the game is being executed. Note that the used area does not have to include the unused area (F12BH-F1D7H).

メインRAM300cの使用外領域には、遊技機規則で定める試験を行うための処理や、性能表示モニタ184を表示するための処理のプログラムが実行されている際に一時的に用いられるワーク領域(F210H~F21FH)、これらのプログラムが実行されている際にデータを一時的に退避させるスタック領域(F220H~F228H)が設けられている。 The unused area of the main RAM 300c includes a work area (F210H to F21FH) that is temporarily used when programs are being executed for processing tests stipulated by gaming machine regulations and processing for displaying the performance display monitor 184, and a stack area (F220H to F228H) that temporarily stores data when these programs are being executed.

また、メインRAM300cのメモリ領域には、使用領域および使用外領域以外にも、未使用領域(F200H~F20FH)、未使用領域(F229H~F3FFH)が設けられている。 In addition to the used area and unused area, the memory area of main RAM 300c also includes an unused area (F200H to F20FH) and an unused area (F229H to F3FFH).

このように、メインROM300bおよびメインRAM300cでは、遊技の進行を制御するために用いられる使用領域と、遊技機規則で定める試験を行うための処理や、性能表示モニタ184の表示制御をするための処理を実行するために用いられる使用外領域とが分かれて設けられている。 In this way, main ROM 300b and main RAM 300c are provided with separate areas: a used area used to control the progress of the game, and a non-used area used to execute processes for performing tests stipulated by gaming machine regulations and processes for controlling the display of the performance display monitor 184.

そして、メインRAM300cでは、使用領域と使用外領域との間に、16バイトの未使用領域(F200H~F20FH)が設けられている。この未使用領域(F200H~F20FH)は、使用領域および使用外領域を分ける境界領域として設定されており、使用領域と使用外領域との境界が明確となり、遊技の進行を制御するためのプログラムが実行されている際に使用外領域が用いられること、および、遊技機規則で定める試験を行うための処理や、性能表示モニタ184の表示制御をするための処理のプログラムが実行されている際に使用領域が用いられることを防止している。 The main RAM 300c has a 16-byte unused area (F200H-F20FH) between the used area and the unused area. This unused area (F200H-F20FH) is set as a boundary area that separates the used area and the unused area, making the boundary between the used area and the unused area clear, preventing the unused area from being used when a program for controlling the progress of the game is being executed, and preventing the used area from being used when a program for processing tests defined by the gaming machine regulations or processing for controlling the display of the performance display monitor 184 is being executed.

なお、使用領域と使用外領域との間に設けられる未使用領域は、少なくとも1バイト以上であればよく、不正防止の観点から、4バイト以上であることが望ましく、16バイト以上に設定されることがより望ましい。また、未使用領域は、データの書き込みおよび読み出しが禁止されているが、不正防止の観点から、所定のタイミングでクリアするようにしてもよい。 The unused area between the used area and the unused area only needs to be at least 1 byte, and from the viewpoint of preventing fraud, it is preferable that it be 4 bytes or more, and more preferably set to 16 bytes or more. Furthermore, writing and reading of data into the unused area is prohibited, but from the viewpoint of preventing fraud, it may be cleared at a specified time.

また、FE00h~FFFFhのメモリ空間には入出力部が割り当てられている。かかる入出力部については後程詳述する。 In addition, the memory space from FE00h to FFFFh is assigned to an input/output unit. This input/output unit will be described in detail later.

次に、同時回し参考例の遊技機100における遊技について、メインROM300bに記憶されている各種テーブルと併せて説明する。 Next, we will explain how to play the simultaneous spin reference example gaming machine 100, along with the various tables stored in the main ROM 300b.

前述したように、同時回し参考例の遊技機100は、特別遊技と普通遊技の2種類の遊技が並行して進行するものである。特別遊技は、低確率遊技状態および高確率遊技状態のいずれかの遊技状態にて遊技が進行し、普通遊技は、非時短遊技状態、中時短遊技状態、時短遊技状態のいずれかの遊技状態にて遊技が進行する。 As mentioned above, the gaming machine 100 of the simultaneous spin reference example has two types of games, special game and normal game, progressing in parallel. The special game progresses in either a low probability game state or a high probability game state, while the normal game progresses in either a non-time-saving game state, a medium time-saving game state, or a time-saving game state.

各遊技状態の詳細については後述するが、低確率遊技状態というのは、大入賞口が開放される大役遊技を実行する権利獲得の確率が低く設定された遊技状態であり、高確率遊技状態というのは、大役遊技を実行する権利獲得の確率が高く設定された遊技状態である。また、非時短遊技状態というのは、可動片120bが開状態になりにくく、第1可変始動口120Bに遊技球が入球し難い遊技状態であり、中時短遊技状態というのは、非時短遊技状態よりも可動片120bが開状態になりやすく、第1可変始動口120Bに遊技球が入球しやすい遊技状態である。また、時短遊技状態というのは、中時短遊技状態よりも、さらに、可動片120bが開状態になりやすく、第1可変始動口120Bに遊技球が最も入球しやすい遊技状態である。なお、時短遊技状態では、遊技中に第2遊技領域116bに向けて遊技球を発射し続けている場合に、僅かに遊技球が減少するか、遊技球が殆ど減少しないように設定されている。 Details of each game state will be described later, but the low probability game state is a game state in which the probability of acquiring the right to play the big prize game in which the big prize opening is opened is set low, and the high probability game state is a game state in which the probability of acquiring the right to play the big prize game is set high. In addition, the non-time-saving game state is a game state in which the movable piece 120b is less likely to be in the open state and the game ball is less likely to enter the first variable start opening 120B, and the intermediate time-saving game state is a game state in which the movable piece 120b is more likely to be in the open state than the non-time-saving game state and the game ball is more likely to enter the first variable start opening 120B. In addition, the time-saving game state is a game state in which the movable piece 120b is even more likely to be in the open state than the intermediate time-saving game state and the game ball is most likely to enter the first variable start opening 120B. In addition, in the time-saving game mode, if game balls continue to be shot toward the second game area 116b during play, the game balls are set to decrease slightly or not at all.

上記のように、特別遊技と普通遊技とは同時並行して進行することから、同時回し参考例では、低確率遊技状態または高確率遊技状態と、非時短遊技状態、中時短遊技状態、時短遊技状態のいずれかとが組み合わされた遊技状態となる。以下では、理解を容易とするため、特別遊技に係る遊技状態、すなわち、低確率遊技状態および高確率遊技状態を特別遊技状態と呼び、普通遊技に係る遊技状態、すなわち、非時短遊技状態、中時短遊技状態、時短遊技状態を普通遊技状態と呼ぶ場合がある。遊技機100の初期状態は、低確率遊技状態および非時短遊技状態に設定されている。 As described above, since the special game and the normal game proceed simultaneously in parallel, in the simultaneous spin reference example, the game state is a combination of a low probability game state or a high probability game state with either a non-time-saving game state, a medium time-saving game state, or a time-saving game state. In the following, for ease of understanding, the game states related to the special game, i.e., the low probability game state and the high probability game state, may be referred to as special game states, and the game states related to the normal game, i.e., the non-time-saving game state, the medium time-saving game state, and the time-saving game state, may be referred to as normal game states. The initial state of the gaming machine 100 is set to the low probability game state and the non-time-saving game state.

遊技者が操作ハンドル112を操作して遊技領域116に遊技球を発射させるとともに、遊技領域116を流下する遊技球が第1始動口120または第2始動口122に入球すると、遊技者に遊技利益を付与するか否かの抽選(以下、「大役抽選」という)が行われる。この大役抽選において、大当たりに当選すると、大入賞口が開放されるとともに当該大入賞口への遊技球の入球が可能となる大役遊技が実行され、また、当該大役遊技の終了後の遊技状態が、上記のいずれかの遊技状態に設定される。以下では、大役抽選方法について説明する。 When a player operates the operating handle 112 to launch a game ball into the game area 116, and the game ball flowing down the game area 116 enters the first start port 120 or the second start port 122, a lottery (hereinafter referred to as the "big prize lottery") is held to determine whether or not the player will be awarded a game profit. In this big prize lottery, if a big win is won, a big prize opening is opened and a big prize game is executed in which the game ball can enter the big prize opening, and the game state after the big prize game ends is set to one of the game states described above. The big prize lottery method is explained below.

なお、詳しくは後述するが、第1始動口120または第2始動口122に遊技球が入球すると、大役抽選に係る種々の乱数値(大当たり決定乱数、当たり図柄乱数、リーチグループ決定乱数、リーチモード決定乱数、変動パターン乱数)が取得されるとともに、これら各乱数値がメインRAM300cの特図保留記憶領域に記憶される。以下では、第1始動口120に遊技球が入球して特図保留記憶領域に記憶された種々の乱数を総称して特1保留とよび、第2始動口122に遊技球が入球して特図保留記憶領域に記憶された種々の乱数を総称して特2保留とよぶ。 As will be described in more detail later, when a game ball enters the first start hole 120 or the second start hole 122, various random number values related to the big role lottery (jackpot determining random number, winning symbol random number, reach group determining random number, reach mode determining random number, variable pattern random number) are obtained, and each of these random number values is stored in the special symbol reserve memory area of the main RAM 300c. In the following, the various random numbers stored in the special symbol reserve memory area when a game ball enters the first start hole 120 are collectively referred to as special 1 reserve, and the various random numbers stored in the special symbol reserve memory area when a game ball enters the second start hole 122 are collectively referred to as special 2 reserve.

メインRAM300cの特図保留記憶領域は、第1特図保留記憶領域と第2特図保留記憶領域とを備えている。第1特図保留記憶領域および第2特図保留記憶領域は、それぞれ4つの記憶部(第1~第4記憶部)を有している。そして、第1始動口120に遊技球が入球すると、特1保留を第1特図保留記憶領域の第1記憶部から順に記憶し、第2始動口122に遊技球が入球すると、特2保留を第2特図保留記憶領域の第1記憶部から順に記憶する。 The special chart reservation memory area of the main RAM 300c includes a first special chart reservation memory area and a second special chart reservation memory area. The first special chart reservation memory area and the second special chart reservation memory area each have four memory sections (first to fourth memory sections). When a game ball enters the first starting hole 120, the special 1 reservation is stored in order starting from the first memory section of the first special chart reservation memory area, and when a game ball enters the second starting hole 122, the special 2 reservation is stored in order starting from the first memory section of the second special chart reservation memory area.

例えば、第1始動口120に遊技球が入球したとき、第1特図保留記憶領域の第1~第4記憶部のいずれにも保留が記憶されていない場合には、第1記憶部に特1保留を記憶する。また、例えば、第1記憶部~第3記憶部に特1保留が記憶されている状態で、第1始動口120に遊技球が入球した場合には、特1保留を第4記憶部に記憶する。また、第2始動口122に遊技球が入球した場合にも、上記と同様に、第2特図保留記憶領域の第1記憶部~第4記憶部の中で、特2保留が記憶されていない、最も番号(序数)の小さい記憶部に特2保留が記憶される。 For example, when a game ball enters the first starting hole 120, if no reserve is stored in any of the first to fourth memory sections of the first special chart reserve memory area, a special 1 reserve is stored in the first memory section. Also, for example, if a game ball enters the first starting hole 120 while a special 1 reserve is stored in the first to third memory sections, the special 1 reserve is stored in the fourth memory section. Also, when a game ball enters the second starting hole 122, similar to the above, a special 2 reserve is stored in the memory section with the smallest number (ordinal number) among the first to fourth memory sections of the second special chart reserve memory area where a special 2 reserve is not stored.

ただし、第1特図保留記憶領域および第2特図保留記憶領域に記憶可能な特1保留数(X1)および特2保留数(X2)は、それぞれ4つに設定されている。したがって、例えば、第1始動口120に遊技球が入球したときに、第1特図保留記憶領域に既に4つの特1保留が記憶されている場合には、当該第1始動口120への遊技球の入球によって新たに特1保留が記憶されることはない。同様に、第2始動口122に遊技球が入球したときに、第2特図保留記憶領域に既に4つの特2保留が記憶されている場合には、当該第2始動口122への遊技球の入球によって新たに特2保留が記憶されることはない。 However, the number of special 1 reservations (X1) and the number of special 2 reservations (X2) that can be stored in the first special chart reservation memory area and the second special chart reservation memory area are each set to four. Therefore, for example, if four special 1 reservations are already stored in the first special chart reservation memory area when a game ball enters the first starting hole 120, no new special 1 reservations will be stored by the game ball entering the first starting hole 120. Similarly, if four special 2 reservations are already stored in the second special chart reservation memory area when a game ball enters the second starting hole 122, no new special 2 reservations will be stored by the game ball entering the second starting hole 122.

図6は、同時回し参考例に係る低確時大当たり決定乱数判定テーブルを説明する図である。第1始動口120または第2始動口122に遊技球が入球すると、0~65535の範囲内から1つの大当たり決定乱数が取得される。そして、大役抽選を開始するとき、すなわち、大当たりの判定を行うときの遊技状態に応じて大当たり決定乱数判定テーブルが選択され、当該選択された大当たり決定乱数判定テーブルと取得された大当たり決定乱数とによって大役抽選が行われる。 Figure 6 is a diagram explaining the low probability jackpot determination random number judgment table for the simultaneous spin reference example. When a game ball enters the first start hole 120 or the second start hole 122, one jackpot determination random number is obtained from the range of 0 to 65535. Then, when the big win lottery starts, that is, according to the game state when the jackpot determination is made, a jackpot determination random number judgment table is selected, and the big win lottery is performed using the selected jackpot determination random number judgment table and the obtained jackpot determination random number.

低確率遊技状態において、特1保留および特2保留について大役抽選を開始する場合には、低確時大当たり決定乱数判定テーブルが参照される。ここで、同時回し参考例では、有利度合いを異にする6段階の設定値が設けられており、低確時大当たり決定乱数判定テーブルは、設定値ごとに設けられている。遊技中は、設定値が6段階のうちのいずれかに設定されており、現在設定されている設定値(設定値バッファに記憶されている登録設定値)に対応する低確時大当たり決定乱数判定テーブルを参照して大役抽選が行われる。 When starting the big prize lottery for special 1 reserve and special 2 reserve in a low probability game state, the low probability jackpot determination random number judgment table is referenced. Here, in the simultaneous spin reference example, six setting values with different degrees of advantage are provided, and a low probability jackpot determination random number judgment table is provided for each setting value. During play, the setting value is set to one of the six levels, and the big prize lottery is performed by referring to the low probability jackpot determination random number judgment table corresponding to the currently set setting value (registered setting value stored in the setting value buffer).

低確率遊技状態であって、設定値=1に設定されている場合(登録設定値=1)には、図6(a)に示す低確時大当たり決定乱数判定テーブルaを参照して大役抽選が行われる。この低確時大当たり決定乱数判定テーブルaによれば、大当たり決定乱数が10001~10218であった場合に大当たりと判定し、大当たり決定乱数が20001~38996であった場合に小当たりと判定し、その他の大当たり決定乱数であった場合にはハズレと判定する。したがって、この場合の大当たり確率は約1/300.6となり、小当たり確率は約1/3.45となる。 When the game is in a low probability game state and the setting value is set to 1 (registered setting value = 1), the big prize lottery is performed by referring to the low probability jackpot determination random number judgment table a shown in FIG. 6 (a). According to this low probability jackpot determination random number judgment table a, if the jackpot determination random number is between 10001 and 10218, it is judged to be a jackpot, if the jackpot determination random number is between 20001 and 38996, it is judged to be a small jackpot, and if it is any other jackpot determination random number, it is judged to be a miss. Therefore, in this case, the probability of a jackpot is approximately 1/300.6, and the probability of a small jackpot is approximately 1/3.45.

低確率遊技状態であって、設定値=2に設定されている場合(登録設定値=2)には、図6(b)に示す低確時大当たり決定乱数判定テーブルbを参照して大役抽選が行われる。この低確時大当たり決定乱数判定テーブルbによれば、大当たり決定乱数が10001~10225であった場合に大当たりと判定し、大当たり決定乱数が20001~38996であった場合に小当たりと判定し、その他の大当たり決定乱数であった場合にはハズレと判定する。したがって、この場合の大当たり確率は約1/291.2となり、小当たり確率は約1/3.45となる。 When the game is in a low probability game state and the setting value is set to 2 (registered setting value = 2), the big prize lottery is performed by referring to the low probability jackpot determination random number judgment table b shown in Figure 6 (b). According to this low probability jackpot determination random number judgment table b, if the jackpot determination random number is between 10001 and 10225, it is judged to be a jackpot, if the jackpot determination random number is between 20001 and 38996, it is judged to be a small jackpot, and if it is any other jackpot determination random number, it is judged to be a miss. Therefore, in this case, the probability of a jackpot is approximately 1/291.2, and the probability of a small jackpot is approximately 1/3.45.

低確率遊技状態であって、設定値=3に設定されている場合(登録設定値=3)には、図6(c)に示す低確時大当たり決定乱数判定テーブルcを参照して大役抽選が行われる。この低確時大当たり決定乱数判定テーブルcによれば、大当たり決定乱数が10001~10232であった場合に大当たりと判定し、大当たり決定乱数が20001~38996であった場合に小当たりと判定し、その他の大当たり決定乱数であった場合にはハズレと判定する。したがって、この場合の大当たり確率は約1/282.4となり、小当たり確率は約1/3.45となる。 When the game is in a low probability game state and the setting value is set to 3 (registered setting value = 3), the big prize lottery is performed by referring to the low probability jackpot determination random number judgment table c shown in Figure 6 (c). According to this low probability jackpot determination random number judgment table c, if the jackpot determination random number is between 10001 and 10232, it is judged to be a jackpot, if the jackpot determination random number is between 20001 and 38996, it is judged to be a small jackpot, and if it is any other jackpot determination random number, it is judged to be a miss. Therefore, in this case, the probability of a jackpot is approximately 1/282.4, and the probability of a small jackpot is approximately 1/3.45.

低確率遊技状態であって、設定値=4に設定されている場合(登録設定値=4)には、図6(d)に示す低確時大当たり決定乱数判定テーブルdを参照して大役抽選が行われる。この低確時大当たり決定乱数判定テーブルdによれば、大当たり決定乱数が10001~10239であった場合に大当たりと判定し、大当たり決定乱数が20001~38996であった場合に小当たりと判定し、その他の大当たり決定乱数であった場合にはハズレと判定する。したがって、この場合の大当たり確率は約1/274.2となり、小当たり確率は約1/3.45となる。 When the game is in a low probability game state and the setting value is set to 4 (registered setting value = 4), the big prize lottery is performed by referring to the low probability jackpot determination random number judgment table d shown in Figure 6 (d). According to this low probability jackpot determination random number judgment table d, if the jackpot determination random number is between 10001 and 10239, it is judged to be a jackpot, if the jackpot determination random number is between 20001 and 38996, it is judged to be a small jackpot, and if it is any other jackpot determination random number, it is judged to be a miss. Therefore, in this case, the probability of a jackpot is approximately 1/274.2, and the probability of a small jackpot is approximately 1/3.45.

低確率遊技状態であって、設定値=5に設定されている場合(登録設定値=5)には、図6(e)に示す低確時大当たり決定乱数判定テーブルeを参照して大役抽選が行われる。この低確時大当たり決定乱数判定テーブルeによれば、大当たり決定乱数が10001~10246であった場合に大当たりと判定し、大当たり決定乱数が20001~38996であった場合に小当たりと判定し、その他の大当たり決定乱数であった場合にはハズレと判定する。したがって、この場合の大当たり確率は約1/266.4となり、小当たり確率は約1/3.45となる。 When the game is in a low probability game state and the setting value is set to 5 (registered setting value = 5), the big prize lottery is performed by referring to the low probability jackpot determination random number judgment table e shown in Figure 6 (e). According to this low probability jackpot determination random number judgment table e, if the jackpot determination random number is between 10001 and 10246, it is judged to be a jackpot, if the jackpot determination random number is between 20001 and 38996, it is judged to be a small jackpot, and if it is any other jackpot determination random number, it is judged to be a miss. Therefore, in this case, the probability of a jackpot is approximately 1/266.4, and the probability of a small jackpot is approximately 1/3.45.

低確率遊技状態であって、設定値=6に設定されている場合(登録設定値=6)には、図6(f)に示す低確時大当たり決定乱数判定テーブルfを参照して大役抽選が行われる。この低確時大当たり決定乱数判定テーブルfによれば、大当たり決定乱数が10001~10253であった場合に大当たりと判定し、大当たり決定乱数が20001~38996であった場合に小当たりと判定し、その他の大当たり決定乱数であった場合にはハズレと判定する。したがって、この場合の大当たり確率は約1/259.0となり、小当たり確率は約1/3.45となる。 When the game is in a low probability game state and the setting value is set to 6 (registered setting value = 6), the big prize lottery is performed by referring to the low probability jackpot determination random number judgment table f shown in Figure 6 (f). According to this low probability jackpot determination random number judgment table f, if the jackpot determination random number is between 10001 and 10253, it is judged to be a jackpot, if the jackpot determination random number is between 20001 and 38996, it is judged to be a small jackpot, and if it is any other jackpot determination random number, it is judged to be a miss. Therefore, in this case, the probability of a jackpot is approximately 1/259.0, and the probability of a small jackpot is approximately 1/3.45.

図7は、同時回し参考例に係る高確時大当たり決定乱数判定テーブルを説明する図である。高確率遊技状態において、特1保留および特2保留について大役抽選を開始する場合には、高確時大当たり決定乱数判定テーブルが参照される。高確時大当たり決定乱数判定テーブルも、低確時大当たり決定乱数判定テーブルと同様に設定値ごとに設けられている。 Figure 7 is a diagram explaining the random number judgment table for determining a high probability jackpot in the simultaneous spin reference example. When starting a lottery for a big prize for special 1 reserve and special 2 reserve in a high probability game state, the random number judgment table for determining a high probability jackpot is referenced. The random number judgment table for determining a high probability jackpot is also set for each setting value, just like the random number judgment table for determining a low probability jackpot.

高確率遊技状態であって、設定値=1に設定されている場合(登録設定値=1)には、図7(a)に示す高確時大当たり決定乱数判定テーブルaを参照して大役抽選が行われる。この高確時大当たり決定乱数判定テーブルaによれば、大当たり決定乱数が10001~10620であった場合に大当たりと判定し、大当たり決定乱数が20001~38996であった場合に小当たりと判定し、その他の大当たり決定乱数であった場合にはハズレと判定する。したがって、この場合の大当たり確率は約1/105.7となり、小当たり確率は約1/3.45となる。 When the game is in a high probability game state and the setting value is set to 1 (registered setting value = 1), the big prize lottery is performed by referring to the high probability jackpot determination random number judgment table a shown in Figure 7 (a). According to this high probability jackpot determination random number judgment table a, if the jackpot determination random number is between 10001 and 10620, it is judged to be a jackpot, if the jackpot determination random number is between 20001 and 38996, it is judged to be a small jackpot, and if it is any other jackpot determination random number, it is judged to be a miss. Therefore, in this case, the probability of a jackpot is approximately 1/105.7, and the probability of a small jackpot is approximately 1/3.45.

同様に、高確率遊技状態であって、設定値=2~6に設定されている場合(登録設定値=2~6)には、図7(b)~(f)に示す高確時大当たり決定乱数判定テーブルb~fを参照して大役抽選が行われる。これら高確時大当たり決定乱数判定テーブルb~fによれば、それぞれ大当たり決定乱数が図示の値であった場合に大当たりと判定する。したがって、設定値=2~6の場合の大当たり確率は、それぞれ約1/102.4~1/91.0となり、小当たり確率は約1/3.45となる。 Similarly, when the game is in a high probability game state and the setting value is set to 2 to 6 (registered setting value = 2 to 6), the big prize lottery is performed by referring to high probability jackpot determination random number judgment tables b to f shown in Figures 7 (b) to (f). According to these high probability jackpot determination random number judgment tables b to f, a jackpot is judged to have occurred when the jackpot determination random number is the value shown. Therefore, when the setting value is 2 to 6, the jackpot probability is approximately 1/102.4 to 1/91.0, respectively, and the small jackpot probability is approximately 1/3.45.

以上のように、大役抽選は、登録設定値に応じて行われる。このとき、登録設定値に応じて大当たりの当選確率が異なっており、登録設定値が大きい場合の方が、小さい場合に比べて、大当たりに当選しやすくなっている。なお、ここでは、登録設定値が異なっても、小当たりの当選確率は変わらないこととしたが、登録設定値ごとに小当たりの当選確率を異ならせてもよい。また、小当たりは必須ではなく、大役抽選において、大当たりおよびハズレのいずれかのみが決定されてもよい。 As described above, the big prize lottery is held according to the registered setting value. At this time, the probability of winning a big prize differs according to the registered setting value, and it is easier to win a big prize when the registered setting value is large than when it is small. Note that here, even if the registered setting value differs, the probability of winning a small prize does not change, but the probability of winning a small prize may be different for each registered setting value. Also, a small prize is not required, and only either a big prize or a miss may be determined in the big prize lottery.

また、ここでは、低確率遊技状態および高確率遊技状態の双方における大当たりの当選確率が、登録設定値に応じて異なることとしたが、低確率遊技状態および高確率遊技状態のいずれか一方における大当たりの当選確率のみが、登録設定値に応じて異なることとしてもよい。 In addition, here, the probability of winning a jackpot in both the low-probability game state and the high-probability game state is set to differ depending on the registered setting value, but it is also possible to set it so that only the probability of winning a jackpot in either the low-probability game state or the high-probability game state differs depending on the registered setting value.

図8は、同時回し参考例に係る当たり図柄乱数判定テーブルおよび小当たり図柄乱数判定テーブルを説明する図である。第1始動口120または第2始動口122に遊技球が入球すると、0~99の範囲内から1つの当たり図柄乱数が取得される。そして、上記の大役抽選により「大当たり」の判定結果が導出された場合に、取得している当たり図柄乱数と当たり図柄乱数判定テーブルとによって、特別図柄の種別が決定される。このとき、特1保留によって「大当たり」に当選した場合には、図8(a)に示すように、特1用当たり図柄乱数判定テーブルaが選択され、特2保留によって「大当たり」に当選した場合には、図8(b)に示すように、特2用当たり図柄乱数判定テーブルbが選択され、特1保留によって「小当たり」に当選した場合には、図8(c)に示すように、特1用小当たり図柄乱数判定テーブルaが選択され、特2保留によって「小当たり」に当選した場合には、図8(d)に示すように、特2用小当たり図柄乱数判定テーブルbが選択される。以下では、当たり図柄乱数によって決定される特別図柄、すなわち、大当たりの判定結果が得られた場合に決定される特別図柄を大当たり図柄と呼び、小当たりの判定結果が得られた場合に決定される特別図柄を小当たり図柄と呼び、ハズレの判定結果が得られた場合に決定される特別図柄をハズレ図柄と呼ぶ。 Figure 8 is a diagram explaining the winning symbol random number determination table and the small winning symbol random number determination table for the simultaneous spin reference example. When a game ball enters the first start hole 120 or the second start hole 122, one winning symbol random number within the range of 0 to 99 is obtained. Then, when a "big win" determination result is derived by the above-mentioned big role lottery, the type of special symbol is determined based on the obtained winning symbol random number and the winning symbol random number determination table. At this time, if the "big win" is won by the special 1 reservation, the winning pattern random number judgment table a for special 1 is selected as shown in FIG. 8(a), if the "big win" is won by the special 2 reservation, the winning pattern random number judgment table b for special 2 is selected as shown in FIG. 8(b), if the "small win" is won by the special 1 reservation, the small win pattern random number judgment table a for special 1 is selected as shown in FIG. 8(c), and if the "small win" is won by the special 2 reservation, the small win pattern random number judgment table b for special 2 is selected as shown in FIG. 8(d). In the following, the special pattern determined by the winning pattern random number, that is, the special pattern determined when the judgment result of the big win is obtained, is called the big win pattern, the special pattern determined when the judgment result of the small win is obtained is called the small win pattern, and the special pattern determined when the judgment result of the loss is obtained is called the loss pattern.

図8(a)に示す特1用当たり図柄乱数判定テーブルa、および、図8(b)に示す特2用当たり図柄乱数判定テーブルbによれば、取得した当たり図柄乱数の値に応じて、図示のとおり、特別図柄として大当たり図柄(特別図柄A~J)が決定される。また、図8(c)に示す特1用小当たり図柄乱数判定テーブルa、および、図8(d)に示す特2用小当たり図柄乱数判定テーブルbによれば、取得した当たり図柄乱数の値に応じて、図示のとおり、特別図柄として小当たり図柄(特別図柄Z1~Z6)が決定される。 According to the special 1 winning symbol random number determination table a shown in FIG. 8(a) and the special 2 winning symbol random number determination table b shown in FIG. 8(b), a big winning symbol (special symbols A to J) is determined as the special symbol according to the value of the acquired winning symbol random number, as shown in the figure. Also, according to the special 1 small winning symbol random number determination table a shown in FIG. 8(c) and the special 2 small winning symbol random number determination table b shown in FIG. 8(d), a small winning symbol (special symbols Z1 to Z6) is determined as the special symbol according to the value of the acquired winning symbol random number, as shown in the figure.

なお、大役抽選結果が「ハズレ」であった場合に、当該抽選結果が特1保留によって導出されたときは、抽選を行うことなくハズレ図柄として特別図柄Xが決定され、当該抽選結果が特2保留によって導出されたときは、抽選を行うことなくハズレ図柄として特別図柄Yが決定される。つまり、当たり図柄乱数判定テーブルは、大役抽選結果が「大当たり」であった場合にのみ参照され、大役抽選結果が「ハズレ」または「小当たり」であった場合に参照されることはない。また、小当たり図柄乱数判定テーブルは、大役抽選結果が「小当たり」であった場合にのみ参照され、大役抽選結果が「大当たり」または「ハズレ」であった場合に参照されることはない。なお、小当たり図柄である特別図柄Z1~Z6をまとめて単に特別図柄Zともよぶ。 When the result of the big prize lottery is a "miss", if the result is derived by special 1 reservation, special pattern X is determined as the missing pattern without drawing a lottery, and when the result is derived by special 2 reservation, special pattern Y is determined as the missing pattern without drawing a lottery. In other words, the winning pattern random number determination table is referenced only when the result of the big prize lottery is a "big prize", and is not referenced when the result of the big prize lottery is a "miss" or a "small prize". In addition, the small prize pattern random number determination table is referenced only when the result of the big prize lottery is a "small prize", and is not referenced when the result of the big prize lottery is a "big prize" or a "miss". In addition, the special patterns Z1 to Z6, which are the small prize patterns, are collectively referred to simply as special pattern Z.

図9は、同時回し参考例に係るリーチグループ決定乱数判定テーブルを説明する図である。このリーチグループ決定乱数判定テーブルは複数設けられており、保留種別、保留数、遊技状態等に応じて、予め設定されたテーブルが選択される。第1始動口120または第2始動口122に遊技球が入球すると、0~10006の範囲内から1つのリーチグループ決定乱数が取得される。上記のように、大役抽選結果が導出されると、当該大役抽選結果を報知する変動演出パターンを決定する処理が行われる。同時回し参考例では、大役抽選結果が「ハズレ」であった場合に、変動演出パターンを決定するにあたって、まず、リーチグループ決定乱数とリーチグループ決定乱数判定テーブルとによってグループ種別が決定される。 Figure 9 is a diagram illustrating a reach group determination random number judgment table for the simultaneous spin reference example. A plurality of reach group determination random number judgment tables are provided, and a preset table is selected according to the reserved type, reserved number, game status, etc. When a game ball enters the first start hole 120 or the second start hole 122, one reach group determination random number is obtained from the range of 0 to 10006. As described above, when the big role lottery result is derived, a process is performed to determine a variable presentation pattern that notifies the big role lottery result. In the simultaneous spin reference example, when the big role lottery result is a "miss", in determining the variable presentation pattern, first, the group type is determined by the reach group determination random number and the reach group determination random number judgment table.

例えば、遊技状態が詳しくは後述する通常状態に設定されているときに、特1保留に基づいて「ハズレ」の大役抽選結果が導出された場合において、大役抽選を行うときの特1保留の保留数(以下、単に「保留数」という)が0個であれば、図9(a)に示すように、リーチグループ決定乱数判定テーブル1が選択される。同様に、通常状態に設定されているときに、特1保留に基づいて「ハズレ」の大役抽選結果が導出された場合において、大役抽選を行うときの保留数が1~2個であれば、図9(b)に示すように、リーチグループ決定乱数判定テーブル2が選択され、保留数が3個であれば、図9(c)に示すように、リーチグループ決定乱数判定テーブル3が選択される。なお、図9において、グループ種別の欄に記載しているグループxは、任意のグループ番号を示している。したがって、取得したリーチグループ決定乱数と、参照するリーチグループ決定乱数判定テーブルの種類とに応じて、グループ種別として種々のグループ番号が決定されることとなる。 For example, when the game state is set to the normal state, which will be described in detail later, if a "miss" big role lottery result is derived based on the special 1 reservation, and the number of reserved special 1s (hereinafter simply referred to as the "reserved number") at the time of the big role lottery is 0, the reach group determination random number judgment table 1 is selected as shown in FIG. 9(a). Similarly, when the game state is set to the normal state, if a "miss" big role lottery result is derived based on the special 1 reservation, and the number of reserved special roles at the time of the big role lottery is 1 to 2, the reach group determination random number judgment table 2 is selected as shown in FIG. 9(b), and if the number of reserved special roles is 3, the reach group determination random number judgment table 3 is selected as shown in FIG. 9(c). In FIG. 9, the group x written in the group type column indicates an arbitrary group number. Therefore, various group numbers are determined as the group type depending on the acquired reach group determination random number and the type of reach group determination random number judgment table to be referenced.

なお、ここでは、通常状態において、特1保留に基づいて「ハズレ」の大役抽選結果が導出されたときに参照されるリーチグループ決定乱数判定テーブルについて説明したが、メインROM300bには、この他にも多数のリーチグループ決定乱数判定テーブルが記憶されている。 Note that, here, we have explained the reach group determination random number judgment table that is referenced when a "miss" major role lottery result is derived based on the special 1 reserved in the normal state, but many other reach group determination random number judgment tables are stored in the main ROM 300b.

なお、大役抽選結果が「大当たり」または「小当たり」であった場合には、変動演出パターンを決定するにあたってグループ種別を決定することはない。つまり、リーチグループ決定乱数判定テーブルは、大役抽選結果が「ハズレ」であった場合にのみ参照され、大役抽選結果が「大当たり」または「小当たり」であった場合に参照されることはない。 If the result of the big prize lottery is a "big prize" or a "small prize", the group type is not determined when deciding the variable presentation pattern. In other words, the reach group determination random number judgment table is only referenced when the result of the big prize lottery is a "miss", and is not referenced when the result of the big prize lottery is a "big prize" or a "small prize".

図10は、同時回し参考例に係るリーチモード決定乱数判定テーブルを説明する図である。このリーチモード決定乱数判定テーブルは、大役抽選結果が「ハズレ」であった場合に選択されるハズレ時リーチモード決定乱数判定テーブルと、大役抽選結果が「大当たり」であった場合に選択される大当たり時リーチモード決定乱数判定テーブルと、大役抽選結果が「小当たり」であった場合に選択される小当たり時リーチモード決定乱数判定テーブルとに大別される。なお、ハズレ時リーチモード決定乱数判定テーブルは、上記のように決定されたグループ種別ごとに設けられており、大当たり時リーチモード決定乱数判定テーブルおよび小当たり時リーチモード決定乱数判定テーブルは、遊技状態、保留種別ごとに設けられている。 Figure 10 is a diagram explaining the reach mode determination random number judgment table for the simultaneous spin reference example. This reach mode determination random number judgment table is broadly divided into a miss reach mode determination random number judgment table that is selected when the big role lottery result is a "miss", a big win reach mode determination random number judgment table that is selected when the big role lottery result is a "big win", and a small win reach mode determination random number judgment table that is selected when the big role lottery result is a "small win". The miss reach mode determination random number judgment table is provided for each group type determined as described above, and the big win reach mode determination random number judgment table and the small win reach mode determination random number judgment table are provided for each game state and hold type.

また、各リーチモード決定乱数判定テーブルは、遊技状態や図柄の種別ごとにも設けられている。ここでは、所定の遊技状態および図柄種別において参照されるグループx用ハズレ時リーチモード決定乱数判定テーブルの一例を図10(a)に示し、特1用大当たり時リーチモード決定乱数判定テーブルの一例を図10(b)に示し、特2用大当たり時リーチモード決定乱数判定テーブルの一例を図10(c)に示し、特1用小当たり時リーチモード決定乱数判定テーブルの一例を図10(d)に示し、特2用小当たり時リーチモード決定乱数判定テーブルの一例を図10(e)に示す。 In addition, each reach mode determination random number judgment table is also provided for each game state and type of pattern. Here, an example of a reach mode determination random number judgment table for group x when it is a miss, which is referenced in a specific game state and type of pattern, is shown in FIG. 10(a), an example of a reach mode determination random number judgment table for a special 1 big win is shown in FIG. 10(b), an example of a reach mode determination random number judgment table for a special 2 big win is shown in FIG. 10(c), an example of a reach mode determination random number judgment table for a special 1 small win is shown in FIG. 10(d), and an example of a reach mode determination random number judgment table for a special 2 small win is shown in FIG. 10(e).

第1始動口120または第2始動口122に遊技球が入球すると、0~250の範囲内から1つのリーチモード決定乱数が取得される。そして、上記の大役抽選の結果が「ハズレ」であった場合には、図10(a)に示すように、上記のグループ種別の抽選により決定されたグループ種別に対応するハズレ時リーチモード決定乱数判定テーブルが選択され、選択されたハズレ時リーチモード決定乱数判定テーブルとリーチモード決定乱数とに基づいて、変動モード番号が決定される。また、上記の大役抽選の結果が「大当たり」であった場合には、図10(b)、(c)に示すように、大当たり当選時の遊技状態、および、読み出された保留種別に対応する大当たり時リーチモード決定乱数判定テーブルが選択され、選択された大当たり時リーチモード決定乱数判定テーブルとリーチモード決定乱数とに基づいて、変動モード番号が決定される。 When a game ball enters the first start hole 120 or the second start hole 122, one reach mode determination random number is obtained from the range of 0 to 250. If the result of the big role lottery is a "miss," as shown in FIG. 10(a), a reach mode determination random number judgment table at the time of a miss corresponding to the group type determined by the group type lottery is selected, and a variable mode number is determined based on the selected reach mode determination random number judgment table at the time of a miss and the reach mode determination random number. If the result of the big role lottery is a "jackpot," as shown in FIG. 10(b) and (c), a reach mode determination random number judgment table at the time of a jackpot win corresponding to the game state at the time of the jackpot win and the read-out reserve type is selected, and a variable mode number is determined based on the selected reach mode determination random number judgment table at the time of a jackpot win and the reach mode determination random number.

さらに、上記の大役抽選の結果が「小当たり」であった場合には、図10(d)、(e)に示すように、小当たり当選時の遊技状態、および、読み出された保留種別に対応する小当たり時リーチモード決定乱数判定テーブルが選択され、選択された小当たり時リーチモード決定乱数判定テーブルとリーチモード決定乱数とに基づいて、変動モード番号が決定される。 Furthermore, if the result of the big prize lottery is a "small win," as shown in Figures 10(d) and (e), a random number judgment table for determining the reach mode at the time of the small win corresponding to the game state at the time of the small win and the hold type that was read out is selected, and a variable mode number is determined based on the selected random number judgment table for determining the reach mode at the time of the small win and the reach mode determination random number.

また、各リーチモード決定乱数判定テーブルにおいては、リーチモード決定乱数に、変動モード番号とともに、後述する変動パターン乱数判定テーブルが対応付けられており、変動モード番号が決定されるのと同時に、変動パターン乱数判定テーブルが決定される。なお、図10において、変動パターン乱数判定テーブルの欄に記載しているテーブルxは、任意のテーブル番号を示している。したがって、取得したリーチグループ決定乱数と、参照するリーチモード決定乱数判定テーブルの種類とに応じて、変動モード番号と、変動パターン乱数判定テーブルのテーブル番号とが決定されることとなる。また、同時回し参考例において、変動モード番号および後述する変動パターン番号は、16進数で設定されている。以下において、16進数を示す場合には「H」を付するが、図10~図12に○○Hと記載しているのは、16進数で示される任意の値を示すものである。 In addition, in each reach mode determination random number judgment table, the reach mode determination random number is associated with a fluctuation pattern random number judgment table described later along with the fluctuation mode number, and the fluctuation pattern random number judgment table is determined at the same time as the fluctuation mode number is determined. In FIG. 10, the table x written in the fluctuation pattern random number judgment table column indicates an arbitrary table number. Therefore, the fluctuation mode number and the table number of the fluctuation pattern random number judgment table are determined according to the acquired reach group determination random number and the type of reach mode determination random number judgment table to be referenced. In the simultaneous rotation reference example, the fluctuation mode number and the fluctuation pattern number described later are set in hexadecimal. In the following, "H" is added to indicate hexadecimal numbers, but ○○H written in FIG. 10 to FIG. 12 indicates an arbitrary value expressed in hexadecimal numbers.

以上のように、大役抽選結果が「ハズレ」であった場合には、まず、図9に示すリーチグループ決定乱数判定テーブルとリーチグループ決定乱数とによってグループ種別が決定される。そして、決定されたグループ種別と遊技状態に応じ、図10(a)に示すハズレ時リーチモード決定乱数判定テーブルとリーチモード決定乱数とによって、変動モード番号および変動パターン乱数判定テーブルが決定される。 As described above, if the result of the big role lottery is a "miss," the group type is first determined by the reach group determination random number judgment table and reach group determination random number shown in Figure 9. Then, depending on the determined group type and game status, the fluctuation mode number and fluctuation pattern random number judgment table are determined by the reach mode determination random number judgment table at the time of a miss and the reach mode determination random number shown in Figure 10 (a).

一方、大役抽選結果が「大当たり」または「小当たり」であった場合には、決定された大当たり図柄または小当たり図柄(特別図柄の種別)、大当たり、または、小当たり当選時の遊技状態等に対応する、図10に示す大当たり時リーチモード決定乱数判定テーブルを参照し、リーチモード決定乱数を用いて、変動モード番号、変動パターン乱数判定テーブルが決定されることとなる。 On the other hand, if the result of the big prize lottery is a "big win" or a "small win," the system will refer to the big win reach mode determination random number judgment table shown in Figure 10, which corresponds to the determined big win or small win pattern (type of special pattern), the game state when the big win or small win is won, and use the reach mode determination random number to determine the fluctuation mode number and fluctuation pattern random number judgment table.

図11は、同時回し参考例に係る変動パターン乱数判定テーブルを説明する図である。ここでは、所定のテーブル番号xの変動パターン乱数判定テーブルxを示すが、変動パターン乱数判定テーブルは、この他にも、テーブル番号ごとに多数設けられている。 Figure 11 is a diagram explaining a fluctuation pattern random number determination table for a simultaneous rotation reference example. Here, fluctuation pattern random number determination table x for a specific table number x is shown, but in addition to this, many other fluctuation pattern random number determination tables are provided for each table number.

第1始動口120または第2始動口122に遊技球が入球すると、0~238の範囲内から1つの変動パターン乱数が取得される。そして、上記の変動モード番号と同時に決定された変動パターン乱数判定テーブルと、取得した変動パターン乱数とに基づいて、図示のように変動パターン番号が決定される。 When a game ball enters the first starting hole 120 or the second starting hole 122, one fluctuation pattern random number is obtained from the range of 0 to 238. Then, based on the fluctuation pattern random number determination table determined at the same time as the above fluctuation mode number and the obtained fluctuation pattern random number, the fluctuation pattern number is determined as shown in the figure.

このように、大役抽選が行われると、大役抽選結果、決定された図柄種別、遊技状態、保留数、保留種別等に応じて、変動モード番号、変動パターン番号が決定される。これら変動モード番号、変動パターン番号は、変動演出パターンを特定するものであり、そのそれぞれに、変動演出の態様および時間が対応付けられている。 In this way, when the big prize lottery is held, the change mode number and change pattern number are determined according to the big prize lottery result, the determined symbol type, the game status, the number of reserved balls, the reserved ball type, etc. These change mode numbers and change pattern numbers specify the change presentation pattern, and each of them is associated with the mode and time of the change presentation.

図12は、同時回し参考例に係る変動時間決定テーブルを説明する図である。上記のように、変動モード番号が決定されると、図12(a)に示す変動時間1決定テーブルにしたがって変動時間1が決定される。この変動時間1決定テーブルによれば、変動モード番号ごとに変動時間1が対応付けられており、決定された変動モード番号に応じて、対応する変動時間1が決定される。 Figure 12 is a diagram illustrating a variation time determination table for the simultaneous rotation reference example. Once the variation mode number is determined as described above, variation time 1 is determined according to the variation time 1 determination table shown in Figure 12 (a). According to this variation time 1 determination table, variation time 1 is associated with each variation mode number, and the corresponding variation time 1 is determined according to the determined variation mode number.

また、上記のように、変動パターン番号が決定されると、図12(b)に示す変動時間2決定テーブルにしたがって変動時間2が決定される。この変動時間2決定テーブルによれば、変動パターン番号ごとに変動時間2が対応付けられており、決定された変動パターン番号に応じて、対応する変動時間2が決定される。このようにして決定された変動時間1、2の合計時間が、大役抽選結果を報知する変動演出の時間、すなわち、変動時間となる。この変動時間というのは、決定された特別図柄を、第1特別図柄表示器160または第2特別図柄表示器162に停止表示させるまでの時間である。 Once the fluctuation pattern number is determined as described above, the fluctuation time 2 is determined according to the fluctuation time 2 determination table shown in FIG. 12(b). According to this fluctuation time 2 determination table, a fluctuation time 2 is associated with each fluctuation pattern number, and the corresponding fluctuation time 2 is determined according to the determined fluctuation pattern number. The total time of the fluctuation times 1 and 2 determined in this way is the time of the fluctuation performance that notifies the result of the big role lottery, that is, the fluctuation time. This fluctuation time is the time until the determined special pattern is stopped and displayed on the first special pattern display device 160 or the second special pattern display device 162.

詳しくは後述するが、特1保留に基づいて特別図柄が決定されるとともに、変動モード番号および変動パターン番号すなわち変動時間が決定されると、当該決定された変動時間に亘って第1特別図柄表示器160において図柄の変動表示が行われ、変動時間が経過すると、第1特別図柄表示器160に、決定された特別図柄が停止表示される。また、特2保留に基づいて特別図柄が決定されるとともに、変動パターン番号すなわち変動時間が決定されると、当該決定された変動時間に亘って第2特別図柄表示器162において図柄の変動表示が行われ、変動時間が経過すると、第2特別図柄表示器162に、決定された特別図柄が停止表示される。このとき、ハズレ図柄が第1特別図柄表示器160に停止表示されることで、大役抽選の結果としてハズレが確定し、次の特1保留に基づく大役抽選が実行可能となり、ハズレ図柄が第2特別図柄表示器162に停止表示されることで、大役抽選の結果としてハズレが確定し、次の特2保留に基づく大役抽選が実行可能となる。一方、大当たり図柄が第1特別図柄表示器160または第2特別図柄表示器162に停止表示されると、大役抽選の結果として大当たりが確定し、大役遊技が実行され、小当たり図柄が第1特別図柄表示器160または第2特別図柄表示器162に停止表示されると、大役抽選の結果として小当たりが確定し、小当たり遊技が実行されることとなる。 As will be described in more detail below, when a special pattern is determined based on the special 1 reservation and the change mode number and change pattern number, i.e., the change time, are determined, the change of the pattern is displayed on the first special pattern display 160 for the determined change time, and when the change time has elapsed, the determined special pattern is displayed stationary on the first special pattern display 160. Also, when a special pattern is determined based on the special 2 reservation and the change pattern number, i.e., the change time, are determined, the change of the pattern is displayed on the second special pattern display 162 for the determined change time, and when the change time has elapsed, the determined special pattern is displayed stationary on the second special pattern display 162. At this time, when a losing symbol is stopped and displayed on the first special symbol display 160, a loss is confirmed as a result of the big role lottery, and the big role lottery based on the next special 1 reservation can be executed, and when a losing symbol is stopped and displayed on the second special symbol display 162, a loss is confirmed as a result of the big role lottery, and the big role lottery based on the next special 2 reservation can be executed. On the other hand, when a big win symbol is stopped and displayed on the first special symbol display 160 or the second special symbol display 162, a big win is confirmed as a result of the big role lottery, and a big role game is executed, and when a small win symbol is stopped and displayed on the first special symbol display 160 or the second special symbol display 162, a small win is confirmed as a result of the big role lottery, and a small win game is executed.

このように、変動時間は、第1特別図柄表示器160または第2特別図柄表示器162における図柄の変動表示の時間、換言すれば、大役抽選の結果を確定させるまでの時間を規定するものとなる。 In this way, the change time stipulates the time for which the pattern on the first special pattern display device 160 or the second special pattern display device 162 changes and displays, in other words, the time until the result of the big prize lottery is determined.

以上のようにして変動モード番号が決定されると、当該決定された変動モード番号に対応する変動モードコマンドが副制御基板330に送信され、変動パターン番号が決定されると、当該決定された変動パターン番号に対応する変動パターンコマンドが副制御基板330に送信される。副制御基板330においては、受信した変動モードコマンドに基づいて、主に変動演出の前半の態様が決定され、受信した変動パターンコマンドに基づいて、主に変動演出の後半の態様が決定されることとなるが、その詳細については後述する。なお、以下では、変動モード番号および変動パターン番号を総称して変動情報と呼び、変動モードコマンドおよび変動パターンコマンドを総称して変動コマンドと呼ぶ場合がある。 When the fluctuation mode number is determined in the above manner, a fluctuation mode command corresponding to the determined fluctuation mode number is sent to the sub-control board 330, and when the fluctuation pattern number is determined, a fluctuation pattern command corresponding to the determined fluctuation pattern number is sent to the sub-control board 330. In the sub-control board 330, the first half of the fluctuation performance is mainly determined based on the received fluctuation mode command, and the second half of the fluctuation performance is mainly determined based on the received fluctuation pattern command, but the details will be described later. Note that, below, the fluctuation mode number and the fluctuation pattern number are collectively referred to as fluctuation information, and the fluctuation mode command and the fluctuation pattern command are collectively referred to as fluctuation commands.

図13は、同時回し参考例に係る遊技状態および変動時間を説明する図である。上述のように、特別遊技状態と普通遊技状態とが組み合わされて1の遊技状態となり、設定中の遊技状態に応じて遊技の進行制御がなされる。既に説明したように、特別遊技状態は、大当たりの当選確率を異にする低確率遊技状態および高確率遊技状態の2種類が設けられている。また、普通遊技状態は、互いに第1可変始動口120Bへの遊技球の入球容易性(入球頻度)を異にする非時短遊技状態、中時短遊技状態、時短遊技状態の3種類が設けられている。 Figure 13 is a diagram explaining the game states and variable times in the simultaneous spin reference example. As described above, the special game state and the normal game state are combined to form one game state, and the progress of the game is controlled according to the game state being set. As already explained, there are two types of special game states, a low probability game state and a high probability game state, which differ in the probability of winning a jackpot. In addition, there are three types of normal game states, a non-time-saving game state, a medium time-saving game state, and a time-saving game state, which differ in the ease (ball-scoring frequency) of entering the first variable start hole 120B.

ここで、普通遊技において、第1可変始動口120Bへの遊技球の入球容易性は、当選確率、変動時間、開放時間の3つの要素によって決定される。詳しくは後述するが、普通遊技では、ゲート124を遊技球が通過するか、あるいは、普図作動口125に遊技球が入球すると普図保留が記憶される。そして、記憶された普図保留に基づいて、可動片120bを開放するか否かを決定する普図抽選が行われる。この普図抽選の結果は、所定の変動時間が経過したところで確定する。普図抽選の結果として当たりが確定すると、可動片120bが開放される。このとき、普図抽選における当選確率、変動時間、および、可動片120bを開放する際の開放時間が、それぞれ普通遊技状態ごとに設定されている。 Here, in normal play, the ease with which a game ball can enter the first variable start port 120B is determined by three factors: winning probability, fluctuation time, and opening time. As will be described in detail later, in normal play, when a game ball passes through the gate 124 or enters the normal play operation port 125, a normal play reserve is stored. Then, based on the stored normal play reserve, a normal play lottery is held to determine whether or not to open the movable piece 120b. The result of this normal play lottery is determined after a predetermined fluctuation time has elapsed. When a win is determined as a result of the normal play lottery, the movable piece 120b is opened. At this time, the winning probability in the normal play lottery, the fluctuation time, and the opening time when opening the movable piece 120b are each set for each normal play state.

同時回し参考例では、図13(a)に示すように、特別遊技状態および普通遊技状態の組み合わせにより6種類の遊技状態が設けられる。遊技機100の初期状態は、低確率遊技状態および非時短遊技状態となっている。なお、非時短遊技状態では、普図抽選における当選確率が低く、変動時間が長く、可動片120bの開放時間が短い。同時回し参考例では、低確率遊技状態および非時短遊技状態が組み合わされた遊技状態を通常状態と呼ぶ。 In the simultaneous spin reference example, as shown in FIG. 13(a), six types of game states are provided by combining special game states and normal game states. The initial state of the gaming machine 100 is a low probability game state and a non-time-saving game state. In the non-time-saving game state, the probability of winning in the normal drawing is low, the fluctuation time is long, and the opening time of the movable piece 120b is short. In the simultaneous spin reference example, a game state that combines a low probability game state and a non-time-saving game state is called a normal state.

また、同時回し参考例では、高確率遊技状態および非時短遊技状態に設定される場合があり、この両者が組み合わされた遊技状態を最優位状態と呼ぶ。なお、この最優位状態は、6つの遊技状態の中で最も有利度合いが高く、適切に遊技球を発射していると、大当たりに当選せずとも、遊技中に徐々に遊技球が増加していくように設定されている。 In the simultaneous spin reference example, the game state may be set to a high probability game state and a non-time-saving game state, and the game state that combines these two is called the most advantageous state. This most advantageous state is the most advantageous of the six game states, and is set so that if the game balls are fired appropriately, the number of game balls will gradually increase during play, even if a jackpot is not won.

また、同時回し参考例では、低確率遊技状態および時短遊技状態に設定される場合がある。なお、時短遊技状態では、普図抽選における当選確率が高く、変動時間が短く、可動片120bの開放時間が長い。以下では、低確率遊技状態および時短遊技状態が組み合わされた遊技状態を低確時短状態と呼ぶ。 In addition, in the simultaneous spin reference example, the game may be set to a low probability game state and a time-saving game state. In the time-saving game state, the probability of winning in the regular drawing is high, the fluctuation time is short, and the opening time of the movable piece 120b is long. In the following, a game state that combines the low probability game state and the time-saving game state is called a low probability time-saving state.

また、同時回し参考例では、高確率遊技状態および時短遊技状態に設定される場合がある。以下では、高確率遊技状態および時短遊技状態が組み合わされた遊技状態を高確時短状態または高確前兆状態と呼ぶ。なお、高確時短状態および高確前兆状態について、詳しくは後述する。 In addition, in the simultaneous spin reference example, the game state may be set to a high probability game state and a time-saving game state. In the following, a game state in which a high probability game state and a time-saving game state are combined is referred to as a high probability time-saving state or a high probability precursor state. The high probability time-saving state and the high probability precursor state will be described in more detail later.

また、同時回し参考例では、高確率遊技状態および中時短遊技状態に設定される場合がある。なお、中時短遊技状態では、普図抽選における当選確率が、非時短遊技状態よりも高く時短遊技状態よりも低く、変動時間が短く、可動片120bの開放時間が長い。この遊技状態は、適切に遊技球を発射させなかった場合等、不測の事態が生じた場合に設定され得るものである。以下では、高確率遊技状態および中時短遊技状態が組み合わされた遊技状態をペナルティ状態と呼ぶ。 In the simultaneous spin reference example, the game may be set to a high probability game state and a medium time-saving game state. In the medium time-saving game state, the probability of winning in the normal drawing is higher than in the non-time-saving game state and lower than in the time-saving game state, the fluctuation time is short, and the opening time of the movable piece 120b is long. This game state can be set when an unforeseen event occurs, such as when the game ball is not launched appropriately. Hereinafter, a game state that combines a high probability game state and a medium time-saving game state is called a penalty state.

なお、副制御基板330においては、主制御基板300で設定されている遊技状態に対応する演出モードが設定される。演出モードというのは、メイン演出表示部200aに表示される背景画像やBGM等を規定するものであり、演出モードごとに、演出の内容が異なっている。つまり、遊技者は、演出モードによって、現在の遊技状態を識別することができる。 In addition, a presentation mode corresponding to the game state set on the main control board 300 is set on the sub-control board 330. The presentation mode specifies the background image and BGM displayed on the main presentation display section 200a, and the content of the presentation differs for each presentation mode. In other words, the player can identify the current game state by the presentation mode.

以上のように、同時回し参考例では、6つの遊技状態が設けられている。そして、上記したように、大役抽選が行われたときの遊技状態、保留種別、当該遊技状態における変動回数、図柄の種別に応じて、変動モード番号および変動パターン番号、すなわち、変動時間が決定される。 As described above, in the simultaneous spin reference example, six game states are provided. As described above, the change mode number and change pattern number, i.e., the change time, are determined according to the game state when the big role lottery is performed, the reserved type, the number of changes in that game state, and the type of pattern.

ここで、遊技機100では、遊技状態ごとに、実質変動対象が設定されている。実質変動対象というのは、本来、大役抽選を行うべき保留の種別を示しており、遊技状態ごとに、特1保留および特2保留のいずれかが実質変動対象に設定されている。通常状態では、特1保留が実質変動対象に設定されている。また、通常状態では、普通遊技状態が非時短遊技状態であるため、第1可変始動口120Bが殆ど開放されることがない。したがって、通常状態では、遊技者は、第1固定始動口120Aに遊技球を入球させるべく、第1遊技領域116aに向けて遊技球を発射させる必要がある。 Here, in the gaming machine 100, an actual variable target is set for each gaming state. The actual variable target indicates the type of reserve for which the big prize lottery should be held, and for each gaming state, either the special 1 reserve or the special 2 reserve is set as the actual variable target. In the normal state, the special 1 reserve is set as the actual variable target. Also, in the normal state, since the normal gaming state is a non-time-saving gaming state, the first variable start port 120B is rarely opened. Therefore, in the normal state, the player needs to shoot the gaming ball toward the first gaming area 116a in order to make the gaming ball enter the first fixed start port 120A.

通常状態において、実質変動対象である特1保留によって大役抽選が行われ、ハズレ図柄もしくは小当たり図柄が決定されると、3~100秒の範囲内で変動時間が決定される。また、通常状態において、特1保留によって大役抽選が行われ、大当たり図柄が決定されると、40~100秒の範囲内で変動時間が決定される。 In the normal state, the special 1 reserved ball, which is the actual variable, is used to draw a big prize, and when a losing symbol or a small winning symbol is determined, the variable time is determined within a range of 3 to 100 seconds. Also, in the normal state, the special 1 reserved ball is used to draw a big prize, and when a winning symbol is determined, the variable time is determined within a range of 40 to 100 seconds.

一方、通常状態において、実質変動対象ではない特2保留によって大役抽選が行われた場合には、決定された図柄種別に拘わらず、変動時間が必ず10分に決定される。このように、変動時間を10分といった長時間に設定することで、通常状態では、仮に遊技者が第2始動口122に遊技球を入球させたとしても、特2保留に基づく大役抽選の実行機会が極めて少なくなる。 On the other hand, in the normal state, when a big prize lottery is held based on the special 2 reserve, which is not actually subject to fluctuation, the fluctuation time is always set to 10 minutes regardless of the determined symbol type. In this way, by setting the fluctuation time to a long time such as 10 minutes, in the normal state, even if the player puts the game ball into the second starting hole 122, the opportunity to hold a big prize lottery based on the special 2 reserve becomes extremely low.

具体的に説明すると、第2始動口122が第2遊技領域116bに設けられており、また、第2始動口122は、常に遊技球が入球可能となる固定始動口で構成されている。さらに、遊技機100の遊技性により、第2始動口122は、第1始動口120よりも、容易に遊技球が入球する位置に配されている。そのため、仮に、通常状態において、特2保留に係る変動時間を短時間としてしまうと、大役抽選の機会が必要以上に遊技者に与えられてしまう。そこで、通常状態における本来の遊技性に則り、適切に第1遊技領域116aに向けて遊技球を発射させるべく、変動時間を10分といった長時間に設定している。 To be more specific, the second start hole 122 is provided in the second play area 116b, and is configured as a fixed start hole that game balls can always enter. Furthermore, due to the playability of the gaming machine 100, the second start hole 122 is located in a position where game balls can enter more easily than the first start hole 120. Therefore, if the fluctuation time for the special 2 reservation is set to a short time in the normal state, the player will be given more opportunities than necessary to win the big prize lottery. Therefore, in accordance with the original playability in the normal state, the fluctuation time is set to a long time, such as 10 minutes, in order to appropriately launch game balls toward the first play area 116a.

最優位状態では、特2保留が実質変動対象に設定されている。したがって、最優位状態では、遊技者は、第2始動口122に遊技球を入球させるべく、第2遊技領域116bに向けて遊技球を発射させる必要がある。最優位状態において、実質変動対象ではない特1保留によって大役抽選が行われた場合には、決定された図柄種別に拘わらず、変動時間が必ず10秒に決定される。なお、最優位状態において実質変動対象ではない特1保留によって大役抽選が行われる場合の方が、通常状態で実質変動対象ではない特2保留によって大役抽選が行われる場合に比べて、遊技性に与える影響が小さい。そのため、最優位状態では、実質変動対象ではない特1保留によって大役抽選が行われた場合の変動時間を、10秒と短く設定している。 In the most advantageous state, the special 2 reserve is set as the actual variable. Therefore, in the most advantageous state, the player needs to shoot the game ball toward the second game area 116b in order to make the game ball enter the second starting hole 122. In the most advantageous state, when a big role lottery is performed by the special 1 reserve, which is not an actual variable, the variable time is always set to 10 seconds regardless of the determined pattern type. Note that the effect on playability is smaller when a big role lottery is performed by the special 1 reserve, which is not an actual variable, in the most advantageous state than when a big role lottery is performed by the special 2 reserve, which is not an actual variable, in the normal state. Therefore, in the most advantageous state, the variable time when a big role lottery is performed by the special 1 reserve, which is not an actual variable, is set to a short time of 10 seconds.

最優位状態において、実質変動対象である特2保留によって大役抽選が行われ、ハズレ図柄または小当たり図柄が決定されると、1秒~3秒の範囲内で変動時間が決定される。また、最優位状態において、特2保留によって大役抽選が行われ、大当たり図柄が決定されると、変動時間が3秒~10秒の範囲内で決定される。 In the most advantageous state, a lottery for a big prize is held by the special 2 reserved symbol, which is the actual variable target, and when a losing symbol or a small winning symbol is determined, the variable time is determined within a range of 1 to 3 seconds. Also, in the most advantageous state, a lottery for a big prize is held by the special 2 reserved symbol, and when a big winning symbol is determined, the variable time is determined within a range of 3 to 10 seconds.

低確時短状態、高確時短状態では、いずれも特1保留が実質変動対象に設定されている。また、低確時短状態、高確時短状態では、普通遊技状態が時短遊技状態に設定されており、第1可変始動口120Bが頻繁に開状態に制御される。したがって、これら2つの遊技状態では、遊技者は、第1可変始動口120Bに遊技球を入球させるべく、第2遊技領域116bに向けて遊技球を発射させる必要がある。これら2つの遊技状態では、いずれも同一の変動パターン乱数判定テーブルが選択されるが、これら2つの遊技状態は、普通遊技状態が時短遊技状態である点で共通している。つまり、普通遊技状態が時短遊技状態である場合において、実質変動対象である特1保留によって大役抽選が行われ、ハズレ図柄もしくは小当たり図柄が決定されると、必ず1秒の変動時間が決定される。また、低確時短状態、高確時短状態である場合において、特1保留によって大役抽選が行われ、大当たり図柄が決定されると、変動時間が必ず30秒に決定される。 In both the low-probability time-saving state and the high-probability time-saving state, the special 1 reservation is set as the actual variable target. In addition, in the low-probability time-saving state and the high-probability time-saving state, the normal game state is set as the time-saving game state, and the first variable start port 120B is frequently controlled to the open state. Therefore, in these two game states, the player needs to launch the game ball toward the second game area 116b to make the game ball enter the first variable start port 120B. In both of these game states, the same variable pattern random number judgment table is selected, but these two game states have in common that the normal game state is a time-saving game state. In other words, when the normal game state is a time-saving game state, a big role lottery is performed by the special 1 reservation, which is the actual variable target, and when a losing pattern or a small winning pattern is determined, a variable time of 1 second is always determined. Also, in the low probability time-saving state or high probability time-saving state, a lottery for a big role is held by special 1 reservation, and when a big win pattern is determined, the fluctuation time is always set to 30 seconds.

高確前兆状態では、特1保留が実質変動対象に設定されている。また、高確前兆状態では、普通遊技状態が時短遊技状態に設定されており、第1可変始動口120Bが頻繁に開状態に制御される。したがって、高確前兆状態では、遊技者は、第1可変始動口120Bに遊技球を入球させるべく、第2遊技領域116bに向けて遊技球を発射させる必要がある。高確前兆状態において、実質変動対象である特1保留によって大役抽選が行われ、ハズレ図柄もしくは小当たり図柄が決定されると、3秒~10秒の範囲内で変動時間が決定される。また、高確前兆状態において、特1保留によって大役抽選が行われ、大当たり図柄が決定されると、変動時間が必ず30秒に決定される。 In the high probability premonition state, the special 1 reserve is set as the actual variable target. Also, in the high probability premonition state, the normal game state is set as the time-saving game state, and the first variable start port 120B is frequently controlled to the open state. Therefore, in the high probability premonition state, the player needs to shoot the game ball toward the second game area 116b to make the game ball enter the first variable start port 120B. In the high probability premonition state, a big role lottery is performed using the special 1 reserve, which is the actual variable target, and when a losing pattern or a small winning pattern is determined, the variable time is determined within the range of 3 to 10 seconds. Also, in the high probability premonition state, a big role lottery is performed using the special 1 reserve, and when a big winning pattern is determined, the variable time is always determined to be 30 seconds.

一方、低確時短状態、高確時短状態および高確前兆状態、すなわち、普通遊技状態が時短遊技状態である場合において、実質変動対象ではない特2保留によって大役抽選が行われた場合には、決定された図柄種別に拘わらず、変動時間が必ず10分に決定される。 On the other hand, in the low probability time-saving state, high probability time-saving state, and high probability premonition state, i.e., when the normal game state is a time-saving game state, if a big role lottery is held by a special 2 reserve that is not actually subject to change, the change time is always set to 10 minutes regardless of the type of pattern that is determined.

ペナルティ状態では、特1保留が実質変動対象に設定されている。また、ペナルティ状態では、普通遊技状態が中時短遊技状態に設定されており、第1可変始動口120Bが一定の頻度で開状態に制御される。したがって、ペナルティ状態では、遊技者は、第1可変始動口120Bに遊技球を入球させるべく、第2遊技領域116bに向けて遊技球を発射させる必要がある。ペナルティ状態において、実質変動対象である特1保留によって大役抽選が行われ、ハズレ図柄または小当たり図柄が決定されると、3~100秒の範囲内で変動時間が決定される。また、ペナルティ状態において、特1保留によって大役抽選が行われ、大当たり図柄が決定されると、40~100秒の範囲内で変動時間が決定される。 In the penalty state, the special 1 reserved ball is set as the actual variable object. Also, in the penalty state, the normal game state is set as the medium time shortening game state, and the first variable start port 120B is controlled to be in the open state at a certain frequency. Therefore, in the penalty state, the player needs to shoot the game ball toward the second game area 116b in order to make the game ball enter the first variable start port 120B. In the penalty state, a big role lottery is performed by the special 1 reserved ball, which is the actual variable object, and when a losing symbol or a small winning symbol is determined, the variable time is determined within a range of 3 to 100 seconds. Also, in the penalty state, a big role lottery is performed by the special 1 reserved ball, and when a big winning symbol is determined, the variable time is determined within a range of 40 to 100 seconds.

一方、ペナルティ状態において、実質変動対象ではない特2保留によって大役抽選が行われた場合には、決定された図柄種別に拘わらず、変動時間が必ず10分に決定される。 On the other hand, in a penalty state, if a big prize lottery is held by a special 2 reserve that is not actually subject to change, the change time is always set to 10 minutes, regardless of the type of symbol that is determined.

以上のように、遊技状態ごとに実質変動対象が設定されており、実質変動対象としての保留種別に基づく大役抽選が行われた場合には、最長でも変動時間が100秒となっている。一方、実質変動対象ではない保留種別に基づく大役抽選が行われた場合には、変動時間が概ね10分となり、本来の遊技性に反した遊技が行われないようにしている。 As described above, an actual change target is set for each game state, and when a big role lottery is held based on a reserved type that is an actual change target, the longest change time is 100 seconds. On the other hand, when a big role lottery is held based on a reserved type that is not an actual change target, the change time is approximately 10 minutes, so that games that go against the original gameplay are not played.

なお、同時回し参考例では、高確時短状態の変動時間の平均が、高確前兆状態の変動時間の平均よりも短い場合について説明するが、高確時短状態の変動時間の平均が、高確前兆状態の変動時間の平均よりも長くてもよい。つまり、高確時短状態の変動時間の平均と、高確前兆状態の変動時間の平均とが異なっていてもよい。 In the simultaneous spin reference example, a case is described in which the average fluctuation time of the high-probability time-saving state is shorter than the average fluctuation time of the high-probability precursor state, but the average fluctuation time of the high-probability time-saving state may be longer than the average fluctuation time of the high-probability precursor state. In other words, the average fluctuation time of the high-probability time-saving state and the average fluctuation time of the high-probability precursor state may be different.

図14は、同時回し参考例に係る特別電動役物作動ラムセットテーブルを説明する第1の図であり、図15は、同時回し参考例に係る特別電動役物作動ラムセットテーブルを説明する第2の図である。なお、特別電動役物作動ラムセットテーブルは、大役遊技または小当たり遊技を制御するための各種データが記憶されたものであり、大役遊技中および小当たり遊技中は、特別電動役物作動ラムセットテーブルを参照して、第1大入賞口ソレノイド126cまたは第2大入賞口ソレノイド128cが通電制御される。なお、実際は、特別電動役物作動ラムセットテーブルは、特別図柄(大当たり図柄および小当たり図柄)の種別ごとに複数設けられており、決定された特別図柄の種別に応じて、対応するテーブルが大役遊技または小当たり遊技の開始時にセットされるが、ここでは、説明の都合上、図柄の種別ごとに特別図柄の制御データを示す。 Figure 14 is a first diagram explaining the special electric role operation ram set table relating to the simultaneous rotation reference example, and Figure 15 is a second diagram explaining the special electric role operation ram set table relating to the simultaneous rotation reference example. The special electric role operation ram set table stores various data for controlling the big role game or the small win game, and during the big role game and the small win game, the first big win port solenoid 126c or the second big win port solenoid 128c is controlled to be energized by referring to the special electric role operation ram set table. In reality, a plurality of special electric role operation ram set tables are provided for each type of special pattern (big win pattern and small win pattern), and the corresponding table is set at the start of the big role game or the small win game according to the type of special pattern determined, but here, for convenience of explanation, the control data of the special pattern is shown for each type of pattern.

図14に示すように、大役遊技は、大入賞口が所定回数開閉される複数回のラウンド遊技で構成され、小当たり遊技は、ラウンド遊技が1回のみ実行される。この特別電動役物作動ラムセットテーブルによれば、オープニング時間(最初のラウンド遊技が開始されるまでの待機時間)、特別電動役物最大作動回数(1回の大役遊技または小当たり遊技中に実行されるラウンド遊技の回数)、特別電動役物開閉切替回数(1ラウンド中の大入賞口の開放回数)、ソレノイド通電時間(大入賞口の開放回数ごとの第1大入賞口ソレノイド126cまたは第2大入賞口ソレノイド128cの通電時間、すなわち、1回の大入賞口の開放時間)、規定数(1回のラウンド遊技における大入賞口への最大入賞可能数)、大入賞口閉鎖有効時間(ラウンド遊技間の大入賞口の閉鎖時間、すなわち、インターバル時間)、エンディング時間(最後のラウンド遊技が終了してから、通常の特別遊技(後述する図柄の変動表示)が再開されるまでの待機時間)が、制御データとして、特別図柄の種別ごとに、図示のように予め記憶されている。 As shown in FIG. 14, the big prize game consists of multiple rounds of play in which the big prize opening is opened and closed a predetermined number of times, while the small prize game consists of only one round of play. According to this special electric device operation ram set table, the opening time (waiting time until the first round of play begins), the maximum number of times the special electric device operates (the number of rounds of play executed during one big win play or small win play), the number of times the special electric device opens and closes (the number of times the large prize opening is opened during one round), the solenoid energization time (the energization time of the first large prize opening solenoid 126c or the second large prize opening solenoid 128c for each number of times the large prize opening is opened, i.e., the opening time of one large prize opening), the specified number (the maximum number of times a large prize opening can be won in one round of play), the effective time for closing the large prize opening (the closing time of the large prize opening between rounds of play, i.e., the interval time), and the ending time (the waiting time from the end of the last round of play until the normal special play (the variable display of the patterns described later) is resumed) are stored in advance as control data for each type of special pattern as shown in the figure.

なお、特1保留によって大当たりに当選し、大当たり図柄として特別図柄A、B、Dが決定された場合には、4回のラウンド遊技で構成される大役遊技が実行される。この大役遊技においては、1~4回目のラウンド遊技において第1大入賞口126がそれぞれ1回のみ開放される。各ラウンド遊技では、第1大入賞口126が最大で29.0秒開放され、この間に規定数の遊技球が入球するか、もしくは、最大開放時間(29.0秒)が経過すると、第1大入賞口126が閉鎖されて1回のラウンド遊技が終了となる。 If a jackpot is won by the special 1 reservation and the special symbols A, B, or D are determined as the jackpot symbol, a big prize game consisting of four rounds of play is executed. In this big prize game, the first big prize opening 126 is opened only once each in the first to fourth rounds of play. In each round of play, the first big prize opening 126 is opened for a maximum of 29.0 seconds, and when a specified number of game balls enter during this time or the maximum opening time (29.0 seconds) has elapsed, the first big prize opening 126 is closed and one round of play ends.

また、特1保留によって大当たりに当選し、大当たり図柄として特別図柄C、Eが決定された場合には、10回のラウンド遊技で構成される大役遊技が実行される。これらの大役遊技においては、1~10回目のラウンド遊技において第1大入賞口126がそれぞれ1回のみ開放される。各ラウンド遊技では、第1大入賞口126が最大で29.0秒開放され、この間に規定数の遊技球が入球するか、もしくは、最大開放時間(29.0秒)が経過すると、第1大入賞口126が閉鎖されて1回のラウンド遊技が終了となる。 In addition, if a jackpot is won by the special 1 reservation and the special symbols C and E are determined as the jackpot symbols, a jackpot game consisting of 10 rounds of play is executed. In these jackpot games, the first jackpot opening 126 is opened only once each in the first to tenth rounds of play. In each round of play, the first jackpot opening 126 is opened for a maximum of 29.0 seconds, and when a specified number of game balls enter during this time or the maximum opening time (29.0 seconds) has elapsed, the first jackpot opening 126 is closed and one round of play ends.

また、特1保留によって小当たりに当選し、小当たり図柄として特別図柄Z1~Z3が決定された場合には、1回のラウンド遊技で構成される小当たり遊技が実行される。この小当たり遊技では、1回のラウンド遊技において、第2大入賞口128が0.1秒×1回開放される。 In addition, if a small prize is won by the special 1 reservation and the special symbols Z1 to Z3 are determined as the small prize symbol, a small prize game consisting of one round of play is executed. In this small prize game, the second large prize opening 128 is opened once for 0.1 seconds during one round of play.

また、図15に示すように、特2保留によって大当たりに当選し、大当たり図柄として特別図柄F、G、Iが決定された場合には、4回のラウンド遊技で構成される大役遊技が実行される。この大役遊技においては、1~4回目のラウンド遊技において第1大入賞口126がそれぞれ1回のみ開放される。各ラウンド遊技では、第1大入賞口126が最大で29.0秒開放され、この間に規定数の遊技球が入球するか、もしくは、最大開放時間(29.0秒)が経過すると、第1大入賞口126が閉鎖されて1回のラウンド遊技が終了となる。 As shown in FIG. 15, if a jackpot is won by the special 2 reserve and the special symbols F, G, or I are determined as the jackpot symbol, a big prize game consisting of four rounds of play is executed. In this big prize game, the first big prize opening 126 is opened only once each in the first to fourth rounds of play. In each round of play, the first big prize opening 126 is opened for a maximum of 29.0 seconds, and when a specified number of game balls enter during this time or the maximum opening time (29.0 seconds) has elapsed, the first big prize opening 126 is closed and one round of play ends.

また、特2保留によって大当たりに当選し、大当たり図柄として特別図柄H、Jが決定された場合には、10回のラウンド遊技で構成される大役遊技が実行される。この大役遊技においては、1~10回目のラウンド遊技において第1大入賞口126がそれぞれ1回のみ開放される。各ラウンド遊技では、第1大入賞口126が最大で29.0秒開放され、この間に規定数の遊技球が入球するか、もしくは、最大開放時間(29.0秒)が経過すると、第1大入賞口126が閉鎖されて1回のラウンド遊技が終了となる。 In addition, if a jackpot is won by the special 2 reserve and the special symbols H and J are determined as the jackpot symbols, a jackpot game consisting of 10 rounds of play is executed. In this jackpot game, the first jackpot opening 126 is opened only once each in the first to tenth rounds of play. In each round of play, the first jackpot opening 126 is opened for a maximum of 29.0 seconds, and when a specified number of game balls enter during this time or the maximum opening time (29.0 seconds) has elapsed, the first jackpot opening 126 is closed and one round of play ends.

また、特2保留によって小当たりに当選し、小当たり図柄として特別図柄Z4~Z6が決定された場合にも、1回のラウンド遊技からなる小当たり遊技が実行される。ここで、小当たり図柄として特別図柄Z4が決定された場合の小当たり遊技では、1回のラウンド遊技において、第2大入賞口128が0.1秒×2回開放される。なお、第2大入賞口128の2回の開放の間の休止時間であるラウンド中インターバル時間は、1.78秒に設定されている。遊技球は最短で0.6秒間隔で発射されるため、第2大入賞口128の開放時間と、遊技球の発射間隔とから考えると、この小当たり遊技中に遊技球が第2大入賞口128に入球する確率は低い。 In addition, if a small prize is won by the special 2 reservation and the special symbols Z4 to Z6 are determined as the small prize symbol, a small prize game consisting of one round of play is executed. Here, in the small prize game when the special symbol Z4 is determined as the small prize symbol, the second large prize opening 128 is opened twice for 0.1 seconds in one round of play. The interval time during the round, which is the pause time between the two openings of the second large prize opening 128, is set to 1.78 seconds. Since the game balls are shot at intervals of 0.6 seconds at the shortest, the probability that the game balls will enter the second large prize opening 128 during this small prize game is low, considering the opening time of the second large prize opening 128 and the shooting interval of the game balls.

しかしながら、同時回し参考例では、第2大入賞口128を閉状態に維持する可動片128b上に遊技球が滞留しやすい構造となっており、可動片128bが開状態に変移することで、可動片128b上に滞留する遊技球が第2大入賞口128内に導かれる。そのため、第2大入賞口128の0.1秒×2回の開放により、平均で2~3個の遊技球が第2大入賞口128に入球することとなる。 However, in the simultaneous spinning reference example, the structure is such that game balls tend to remain on the movable piece 128b that keeps the second large prize opening 128 in a closed state, and when the movable piece 128b transitions to an open state, the game balls remaining on the movable piece 128b are guided into the second large prize opening 128. Therefore, when the second large prize opening 128 is opened twice for 0.1 seconds, an average of 2 to 3 game balls enter the second large prize opening 128.

また、小当たり図柄として特別図柄Z5が決定された場合の小当たり遊技では、1回のラウンド遊技において、第2大入賞口128が0.1秒×3回開放される。なお、この場合のラウンド中インターバル時間は、0.84秒に設定されている。この小当たり遊技においては、平均で3~4個の遊技球が第2大入賞口128に入球する。 In addition, in a small prize game in which the special symbol Z5 is determined as the small prize symbol, the second large prize opening 128 is opened 0.1 seconds x 3 times in one round of play. In this case, the interval time during the round is set to 0.84 seconds. In this small prize game, an average of 3 to 4 game balls enter the second large prize opening 128.

さらに、小当たり図柄として特別図柄Z6が決定された場合の小当たり遊技では、1回のラウンド遊技において、第2大入賞口128が0.1秒×12回開放される。なお、この場合のラウンド中インターバル時間は、0.84秒に設定されている。この小当たり遊技においては、第2遊技領域116bに向けて遊技球を発射し続けることにより、ほぼ確実に規定数(例えば10個)の遊技球を第2大入賞口128に入球させることができる。 Furthermore, in a small prize game in which the special pattern Z6 is determined as the small prize pattern, the second large prize opening 128 is opened 0.1 seconds x 12 times in one round of play. In this case, the interval time during the round is set to 0.84 seconds. In this small prize game, by continuing to shoot game balls toward the second game area 116b, it is possible to almost certainly cause a specified number of game balls (e.g. 10 balls) to enter the second large prize opening 128.

なお、遊技機100の設計段階では、遊技球の発射球数と、払い出された賞球数との比率である発射賞球比率を厳密に管理、調整する必要がある。そのため、同時回し参考例では、小当たり遊技において0.1秒の開放が2回なされる特別図柄Z4と、小当たり遊技において0.1秒の開放が3回なされる特別図柄Z5とを設け、これらの選択比率を変更するだけで、発射賞球比率を容易に調整、変更することができるようにしている。 In addition, during the design stage of the gaming machine 100, it is necessary to strictly manage and adjust the firing prize ball ratio, which is the ratio between the number of game balls fired and the number of prize balls paid out. For this reason, in the simultaneous spin reference example, special pattern Z4 is provided, which opens twice for 0.1 seconds in a small win game, and special pattern Z5 is provided, which opens three times for 0.1 seconds in a small win game, and the firing prize ball ratio can be easily adjusted and changed simply by changing the selection ratio of these.

図16は、同時回し参考例に係る大役遊技の終了後の遊技状態を設定するための遊技状態設定テーブルを説明する図である。同時回し参考例においては、大役遊技が実行された場合、大当たり当選時の遊技状態、保留種別、特別図柄(大当たり図柄)の種別に応じて、遊技状態設定テーブルを参照し、大役遊技の終了後の遊技状態を設定する。 Figure 16 is a diagram illustrating a game state setting table for setting the game state after the end of the big prize game in the simultaneous spin reference example. In the simultaneous spin reference example, when the big prize game is executed, the game state setting table is referenced and the game state after the big prize game ends is set according to the game state at the time of winning the big prize, the reserved type, and the type of special pattern (big prize pattern).

大当たり当選時の遊技状態が通常状態またはペナルティ状態である場合、実質変動対象である特1保留によって大当たりに当選すると、大当たり図柄の種別に応じて大役遊技後の遊技状態が設定される。具体的には、大当たり図柄として特別図柄Aが決定された場合には、低確時短状態(特別遊技状態が低確率遊技状態、普通遊技状態が時短遊技状態)に設定される。このとき、時短遊技状態の継続回数(以下、「時短回数」という)は100回に設定される。これは、大役抽選が100回行われるまで、時短遊技状態が継続することを意味している。ただし、上記した時短回数は1の時短遊技状態における最大継続回数を示すものであり、上記の継続回数に到達するまでの間に大当たりに当選した場合には、再度、遊技状態の設定が行われることとなる。したがって、大役遊技の終了後に時短遊技状態に設定された場合に、当該時短遊技状態において大当たりの抽選結果が導出されることなく、大当たり以外の抽選結果が100回導出されると、非時短遊技状態(通常状態)に遊技状態が変更されることとなる。 If the game state at the time of winning the jackpot is the normal state or the penalty state, when the jackpot is won by the special 1 reservation, which is the actual variable target, the game state after the big prize game is set according to the type of the jackpot pattern. Specifically, if the special pattern A is determined as the jackpot pattern, it is set to a low probability time-saving state (the special game state is a low probability game state, and the normal game state is a time-saving game state). At this time, the number of times the time-saving game state continues (hereinafter referred to as the "time-saving number of times") is set to 100. This means that the time-saving game state continues until the big prize lottery is performed 100 times. However, the above-mentioned time-saving number of times indicates the maximum number of times that it continues in the time-saving game state of 1, and if a jackpot is won before the above-mentioned number of times of continuation is reached, the game state will be set again. Therefore, if the time-saving game state is set after the big win game ends, and a lottery result other than a jackpot is drawn 100 times without a jackpot result being drawn in the time-saving game state, the game state will change to a non-time-saving game state (normal state).

また、大当たり図柄として特別図柄B、Dが決定された場合には、高確時短状態(特別遊技状態が高確率遊技状態、普通遊技状態が時短遊技状態)に設定される。このとき、高確回数として「次回」が設定され、高確率遊技状態は、次回の大当たりに当選するまで継続する。また、時短回数として「次回」が設定され、時短遊技状態は、次回の大当たりに当選するまで継続する。したがって、特別図柄B、Dが決定された場合には、大役遊技後、次回の大当たりに当選するまで、高確時短状態が継続することとなる。 In addition, if special patterns B or D are determined as the jackpot pattern, the machine will be set to a high-probability time-saving state (the special game state is a high-probability game state, and the normal game state is a time-saving game state). At this time, "next" is set as the high-probability number of times, and the high-probability game state will continue until the next jackpot is won. In addition, "next" is set as the number of time-saving times, and the time-saving game state will continue until the next jackpot is won. Therefore, if special patterns B or D are determined, the high-probability time-saving state will continue after the big win game until the next jackpot is won.

また、大当たり図柄として特別図柄C、Eが決定された場合には、高確前兆状態(特別遊技状態が高確率遊技状態、普通遊技状態が時短遊技状態)に設定される。このとき、高確回数として「次回」が設定され、時短回数が100回に設定される。特別図柄C、Eが決定された場合には、次回の大当たりの当選まで高確率遊技状態が継続する一方で、時短遊技状態は100回で終了となる。したがって、特別図柄C、Eが決定された場合には、大役遊技後、大役抽選の結果が100回導出されたところで、遊技状態が最優位状態に移行することとなる。 In addition, if special patterns C or E are determined as the jackpot pattern, the game will be set to a high probability precursor state (the special game state is a high probability game state, and the normal game state is a time-saving game state). At this time, "next time" is set as the high probability number of times, and the time-saving number of times is set to 100. If special patterns C or E are determined, the high probability game state will continue until the next jackpot is won, while the time-saving game state will end after 100 times. Therefore, if special patterns C or E are determined, after the big prize game, the game state will transition to the most advantageous state when the results of the big prize lottery have been derived 100 times.

また、大当たり当選時の遊技状態が通常状態またはペナルティ状態である場合、実質変動対象ではない特2保留によって大当たりに当選すると、大役遊技後の遊技状態が次のように設定される。すなわち、大当たり図柄として特別図柄Fが決定された場合には、通常状態(特別遊技状態が低確率遊技状態、普通遊技状態が非時短遊技状態)に設定される。また、大当たり図柄として特別図柄G~Jが決定された場合には、ペナルティ状態(特別遊技状態が高確率遊技状態、普通遊技状態が中時短遊技状態)に設定される。このとき、高確回数および時短回数は、いずれも「次回」に設定される。 In addition, if the game state at the time of winning the jackpot is the normal state or the penalty state, if the jackpot is won by the special 2 reserve, which is not actually subject to change, the game state after the big win is set as follows. That is, if special pattern F is determined as the jackpot pattern, it is set to the normal state (special game state is a low probability game state, normal game state is a non-time-saving game state). In addition, if special patterns G to J are determined as the jackpot pattern, it is set to the penalty state (special game state is a high probability game state, normal game state is a medium time-saving game state). At this time, the number of high probability wins and the number of time-saving wins are both set to "next time".

また、大当たり当選時の遊技状態が最優位状態である場合、実質変動対象ではない特1保留によって大当たりに当選すると、大役遊技後の遊技状態が次のように設定される。すなわち、大当たり図柄として特別図柄Aが決定された場合には、低確時短状態(特別遊技状態が低確率遊技状態、普通遊技状態が時短遊技状態)に設定される。このとき、時短回数は100回に設定される。また、大当たり図柄として特別図柄B~Eが決定された場合には、通常状態およびペナルティ状態と同様に、大役遊技後の遊技状態が設定される。 In addition, if the game state at the time of winning the jackpot is the most advantageous state, when the jackpot is won by a special 1 reserve that is not actually subject to change, the game state after the big win is set as follows. That is, if special pattern A is determined as the jackpot pattern, it is set to a low probability time-saving state (the special game state is a low probability game state, and the normal game state is a time-saving game state). At this time, the number of time-saving times is set to 100. In addition, if special patterns B to E are determined as the jackpot pattern, the game state after the big win is set to the same as the normal state and penalty state.

一方、大当たり当選時の遊技状態が最優位状態である場合、実質変動対象である特2保留によって大当たりに当選すると、大役遊技後の遊技状態が次のように設定される。すなわち、大当たり図柄として特別図柄Fが決定された場合には、低確時短状態(特別遊技状態が低確率遊技状態、普通遊技状態が時短遊技状態)に設定される。このとき、時短回数は100回に設定される。また、大当たり図柄として特別図柄G、Iが決定された場合には、高確時短状態(特別遊技状態が高確率遊技状態、普通遊技状態が時短遊技状態)に設定される。このとき、高確回数および時短回数が「次回」に設定される。 On the other hand, if the game state at the time of winning the jackpot is the most advantageous state, when a jackpot is won by the special 2 reserve, which is essentially subject to change, the game state after the big win is set as follows. That is, if the special pattern F is determined as the jackpot pattern, it is set to a low-probability time-saving state (the special game state is a low-probability game state, and the normal game state is a time-saving game state). At this time, the number of time-saving times is set to 100. Also, if the special pattern G or I is determined as the jackpot pattern, it is set to a high-probability time-saving state (the special game state is a high-probability game state, and the normal game state is a time-saving game state). At this time, the high-probability number of times and the number of time-saving times are set to "next time".

また、大当たり図柄として特別図柄H、Jが決定された場合には、高確前兆状態(特別遊技状態が高確率遊技状態、普通遊技状態が時短遊技状態)に設定される。このとき、高確回数が「次回」に設定され、時短回数が100回に設定される。 In addition, if the special symbols H or J are determined as the jackpot symbols, the high probability premonition state is set (the special game state is a high probability game state, and the normal game state is a time-saving game state). At this time, the number of high probability times is set to "next time," and the number of time-saving times is set to 100.

また、大当たり当選時の遊技状態が低確時短状態、高確時短状態、高確前兆状態である場合、つまり、普通遊技状態が時短遊技状態である場合、大役遊技後の遊技状態は、通常状態およびペナルティ状態と同様に設定される。 In addition, if the game state at the time of winning the jackpot is a low probability time-saving state, a high probability time-saving state, or a high probability premonition state, in other words, if the normal game state is a time-saving game state, the game state after the big win is set to the same as the normal state or the penalty state.

図17は、同時回し参考例に係る当たり決定乱数判定テーブルを説明する図である。遊技領域116を流下する遊技球がゲート124を通過するか、もしくは、普図作動口125に入球すると、第1可変始動口120Bの可動片120bを通電制御するか否かが対応付けられた普通図柄の判定処理(以下、「普図抽選」という)が行われる。 Figure 17 is a diagram explaining a winning decision random number judgment table for the simultaneous spin reference example. When the game ball flowing down the game area 116 passes through the gate 124 or enters the normal symbol operating port 125, a normal symbol judgment process (hereinafter referred to as "normal symbol lottery") is performed, which corresponds to whether or not to control the flow of electricity to the movable piece 120b of the first variable start port 120B.

なお、詳しくは後述するが、遊技球がゲート124を通過するか、もしくは、普図作動口125に入球すると、0~99の範囲内から1つの当たり決定乱数が取得されるとともに、この乱数値がメインRAM300cの普図保留記憶領域に4つを上限として記憶される。つまり、普図保留記憶領域は、当たり決定乱数をセーブする4つの記憶部を備えている。したがって、普図保留記憶領域の4つの記憶部全てに当たり決定乱数が記憶された状態で、遊技球がゲート124を通過するか、もしくは、普図作動口125に入球した場合には、当該遊技球の通過に基づいて当たり決定乱数が記憶されることはない。以下では、ゲート124を遊技球が通過するか、もしくは、普図作動口125に遊技球が入球して普図保留記憶領域に記憶された当たり決定乱数を普図保留とよぶ。 As will be described in detail later, when a game ball passes through gate 124 or enters normal map operation port 125, one winning determination random number is obtained from the range of 0 to 99, and this random number value is stored in the normal map reserve memory area of main RAM 300c, up to a maximum of four. In other words, the normal map reserve memory area has four memory sections for saving winning determination random numbers. Therefore, if a game ball passes through gate 124 or enters normal map operation port 125 with winning determination random numbers stored in all four memory sections of the normal map reserve memory area, no winning determination random number will be stored based on the passage of the game ball. In the following, the winning determination random number stored in the normal map reserve memory area when a game ball passes through gate 124 or enters normal map operation port 125 is referred to as a normal map reserve.

普通遊技状態が非時短遊技状態であるときに普図抽選を開始する場合には、図17(a)に示すように、非時短遊技状態用当たり決定乱数判定テーブルが参照される。この非時短遊技状態用当たり決定乱数判定テーブルによれば、当たり決定乱数が0であった場合に、普通図柄の種別として当たり図柄が決定され、当たり決定乱数が1~99であった場合に、普通図柄の種別としてハズレ図柄が決定される。したがって、非時短遊技状態において当たり図柄が決定される確率、すなわち、当選確率は1/100となる。詳しくは後述するが、この普図抽選において当たり図柄が決定されると、第1可変始動口120Bの可動片120bが開状態に制御され、ハズレ図柄が決定された場合には、第1可変始動口120Bの可動片120bが閉状態に維持される。 When the normal game state is a non-time-saving game state and a normal symbol lottery is started, the non-time-saving game state winning random number judgment table is referenced as shown in FIG. 17(a). According to this non-time-saving game state winning random number judgment table, if the winning random number is 0, a winning symbol is determined as the type of normal symbol, and if the winning random number is 1 to 99, a losing symbol is determined as the type of normal symbol. Therefore, the probability of a winning symbol being determined in a non-time-saving game state, that is, the probability of winning, is 1/100. As will be described in detail later, when a winning symbol is determined in this normal symbol lottery, the movable piece 120b of the first variable start opening 120B is controlled to the open state, and when a losing symbol is determined, the movable piece 120b of the first variable start opening 120B is maintained in the closed state.

また、中時短遊技状態において普図抽選を開始する場合には、図17(b)に示すように、中時短遊技状態用当たり決定乱数判定テーブルが参照される。この中時短遊技状態用当たり決定乱数判定テーブルによれば、当たり決定乱数が0~49であった場合に、普通図柄の種別として当たり図柄が決定され、当たり決定乱数が50~99であった場合に、普通図柄の種別としてハズレ図柄が決定される。したがって、中時短遊技状態において当たり図柄が決定される確率、すなわち、当選確率は50/100となる。 When starting the normal symbol lottery in the intermediate time-saving play state, the winning symbol determination random number judgment table for the intermediate time-saving play state is referenced, as shown in FIG. 17(b). According to this winning symbol determination random number judgment table for the intermediate time-saving play state, if the winning symbol determination random number is between 0 and 49, a winning symbol is determined as the type of normal symbol, and if the winning symbol determination random number is between 50 and 99, a losing symbol is determined as the type of normal symbol. Therefore, the probability of a winning symbol being determined in the intermediate time-saving play state, i.e., the probability of winning, is 50/100.

また、時短遊技状態において普図抽選を開始する場合には、図17(c)に示すように、時短遊技状態用当たり決定乱数判定テーブルが参照される。この時短遊技状態用当たり決定乱数判定テーブルによれば、当たり決定乱数が0~98であった場合に、普通図柄の種別として当たり図柄が決定され、当たり決定乱数が99であった場合に、普通図柄の種別としてハズレ図柄が決定される。したがって、時短遊技状態において当たり図柄が決定される確率、すなわち、当選確率は99/100となる。 In addition, when starting the regular symbol lottery in the time-saving play state, the time-saving play state win determination random number judgment table is referenced, as shown in FIG. 17(c). According to this time-saving play state win determination random number judgment table, if the win determination random number is 0-98, a winning symbol is determined as the type of regular symbol, and if the win determination random number is 99, a losing symbol is determined as the type of regular symbol. Therefore, the probability of a winning symbol being determined in the time-saving play state, i.e., the probability of winning, is 99/100.

図18(a)は、同時回し参考例に係る普通図柄変動時間データテーブルを説明する図であり、図18(b)は、同時回し参考例に係る開閉制御パターンテーブルを説明する図である。上記のように、普図抽選が行われると、普通図柄の変動時間が決定される。普通図柄変動時間データテーブルは、普図抽選によって当たり図柄もしくはハズレ図柄が決定されたときに、当該普通図柄の変動時間を決定する際に参照されるものである。この普通図柄変動時間データテーブルによれば、遊技状態が非時短遊技状態および中時短遊技状態に設定されている場合には変動時間が10秒に決定され、遊技状態が時短遊技状態に設定されている場合には変動時間が1秒に決定される。このようにして変動時間が決定されると、当該決定された時間にわたって普通図柄表示器168が変動表示(点滅表示)される。そして、当たり図柄が決定された場合には普通図柄表示器168が点灯し、ハズレ図柄が決定された場合には普通図柄表示器168が消灯する。 18(a) is a diagram explaining the normal symbol variation time data table relating to the simultaneous spin reference example, and FIG. 18(b) is a diagram explaining the opening/closing control pattern table relating to the simultaneous spin reference example. As described above, when the normal symbol lottery is performed, the variation time of the normal symbol is determined. The normal symbol variation time data table is referenced when determining the variation time of the normal symbol when a winning symbol or a losing symbol is determined by the normal symbol lottery. According to this normal symbol variation time data table, when the game state is set to a non-time-saving game state or a medium time-saving game state, the variation time is determined to be 10 seconds, and when the game state is set to a time-saving game state, the variation time is determined to be 1 second. When the variation time is determined in this way, the normal symbol display 168 is displayed (blinking) for the determined time. Then, when a winning symbol is determined, the normal symbol display 168 is turned on, and when a losing symbol is determined, the normal symbol display 168 is turned off.

そして、普図抽選によって当たり図柄が決定されるとともに、普通図柄表示器168が点灯した場合には、第1可変始動口120Bの可動片120bが、図18(b)に示すように、開閉制御パターンテーブルを参照して通電制御される。なお、実際は、開閉制御パターンテーブルは、遊技状態ごとに設けられており、普通図柄が決定されたときの遊技状態に応じて、対応するテーブルが普通電動役物ソレノイド120cの通電開始時にセットされる。 When the winning symbol is determined by the normal symbol lottery and the normal symbol display 168 is lit, the movable piece 120b of the first variable start port 120B is controlled to energize by referring to the opening/closing control pattern table, as shown in FIG. 18(b). Note that, in reality, an opening/closing control pattern table is provided for each game state, and the corresponding table is set when the normal electric role solenoid 120c starts energizing, depending on the game state when the normal symbol is determined.

当たり図柄が決定されると、図18(b)に示すように、開閉制御パターンテーブルを参照して第1可変始動口120Bが開閉制御される。この開閉制御パターンテーブルによれば、普電開放前時間(第1可変始動口120Bの開放が開始されるまでの待機時間)、普通電動役物最大開閉切替回数(第1可変始動口120Bの開放回数)、ソレノイド通電時間(第1可変始動口120Bの開放回数ごとの普通電動役物ソレノイド120cの通電時間、すなわち、1回の第1可変始動口120Bの開放時間)、規定数(第1可変始動口120Bの全開放中における第1可変始動口120Bへの最大入賞可能数)、普電閉鎖有効時間(第1可変始動口120Bの各開放間の閉鎖時間、すなわち、休止時間)、普電有効状態時間(第1可変始動口120Bの最後の開放終了からの待機時間)、普電終了ウェイト時間(普電有効状態時間の経過後、後述する普通図柄の変動表示が再開されるまでの待機時間)が、第1可変始動口120Bの制御データとして、遊技状態ごとに、図示のように予め記憶されている。 Once the winning pattern is determined, the first variable starting port 120B is controlled to open and close by referring to the opening and closing control pattern table, as shown in Figure 18 (b). According to this opening/closing control pattern table, the time before normal power opening (waiting time until the first variable start port 120B starts opening), the maximum number of normal electric role opening/closing switching times (number of times the first variable start port 120B is opened), the solenoid energization time (the energization time of the normal electric role solenoid 120c for each number of times the first variable start port 120B is opened, i.e., the opening time of the first variable start port 120B once), the specified number (the maximum number of winnings that can be won into the first variable start port 120B during the full opening of the first variable start port 120B), the normal power closing effective time (the closing time between each opening of the first variable start port 120B, i.e., the pause time), the normal power effective state time (waiting time from the end of the last opening of the first variable start port 120B), and the normal power end wait time (waiting time until the variable display of the normal pattern described later is resumed after the normal power effective state time has elapsed) are stored in advance for each game state as shown in the figure as control data for the first variable start port 120B.

このように、普通図柄の当選確率、変動時間および開放時間を設定することにより、図18(b)の下部に示すように、発射賞球比率(遊技領域116に発射される遊技球に対して第1可変始動口120B、第2始動口122、普図作動口125および大入賞口に遊技球が入球して遊技者に払い出される賞球数の比率)は、非時短遊技状態では発射数:賞球数=100:20、中時短遊技状態では発射数:賞球数=100:40、時短遊技状態では発射数:賞球数=100:99となる。 In this way, by setting the winning probability of the normal symbol, the variable time and the opening time, as shown in the lower part of Figure 18 (b), the fired prize ball ratio (the ratio of the number of prize balls that enter the first variable start port 120B, the second start port 122, the normal symbol operating port 125 and the large prize entry port and are paid out to the player relative to the number of game balls fired into the game area 116) is the number of fired balls:number of prize balls = 100:20 in the non-time-saving game state, the number of fired balls:number of prize balls = 100:40 in the intermediate time-saving game state, and the number of fired balls:number of prize balls = 100:99 in the time-saving game state.

なお、第1可変始動口120Bの開閉条件は、普通図柄の当選確率、普通図柄の変動表示の時間、第1可変始動口120Bの開放時間の3つの要素を規定するものである。つまり、普通図柄の当選確率、普通図柄の変動表示の時間、第1可変始動口120Bの開放時間の3つの要素を組み合わせることにより、非時短遊技状態、中時短遊技状態、時短遊技状態それぞれにおける、第1可変始動口120Bへの遊技球の入球頻度や、発射賞球比率を設定可能である。いずれにしても、ここに示した3つの要素の組み合わせは一例にすぎず、非時短遊技状態よりも時短遊技状態の方が、発射賞球比率が高くなるように、3つの要素を組み合わせればよい。 The opening and closing conditions of the first variable start port 120B stipulate three elements: the probability of winning a normal symbol, the time for which the normal symbol is displayed in a variable manner, and the opening time of the first variable start port 120B. In other words, by combining the three elements of the probability of winning a normal symbol, the time for which the normal symbol is displayed in a variable manner, and the opening time of the first variable start port 120B, it is possible to set the frequency of game balls entering the first variable start port 120B and the ratio of prize balls fired in each of the non-time-saving game state, intermediate time-saving game state, and time-saving game state. In any case, the combination of the three elements shown here is merely one example, and it is sufficient to combine the three elements so that the ratio of prize balls fired is higher in the time-saving game state than in the non-time-saving game state.

図19は、同時回し参考例に係る本来の遊技性に則った遊技状態の遷移を説明する図である。上記の構成により、遊技機100は、次のような遊技性を実現する。なお、ここでは、登録設定値が「1」に設定されている場合について説明する。まず、遊技機100の初期状態では、図19の(a)に示す通常状態に設定されている。通常状態では、実質変動対象が特1保留に設定されているため、遊技者は第1固定始動口120Aに遊技球を入球させるべく、第1遊技領域116aに向けて遊技球を発射させる。第1遊技領域116aは、遊技盤108の左側に位置することから、遊技者は、通常状態において、所謂「左打ち」を行うこととなる。 Figure 19 is a diagram explaining the transition of game states according to the original gameplay of the simultaneous spin reference example. With the above configuration, the game machine 100 realizes the following gameplay. Note that here, the case where the registration setting value is set to "1" is explained. First, in the initial state of the game machine 100, it is set to the normal state shown in Figure 19 (a). In the normal state, the actual variable target is set to special 1 reservation, so the player launches the game ball toward the first game area 116a to make the game ball enter the first fixed start hole 120A. Since the first game area 116a is located on the left side of the game board 108, the player will perform what is called a "left shot" in the normal state.

第1固定始動口120Aに遊技球が入球すると特1保留が第1特図保留記憶領域に記憶される。第1特図保留記憶領域に記憶された特1保留は、始動条件の成立により順次読み出され、読み出した特1保留に基づく大役抽選が行われる。このとき、大当たりの当選確率は約1/300.6に設定されている。通常状態では、この特1保留に基づく大役抽選において、大当たりに当選することを目的として遊技を行うこととなる。なお、第1遊技領域116aに向けて遊技球を発射した場合の発射賞球比率は100:20に設定されており、遊技中に遊技球が減少していくことになる。 When a game ball enters the first fixed starting hole 120A, the special 1 reserve is stored in the first special chart reserve memory area. The special 1 reserves stored in the first special chart reserve memory area are read out sequentially when the starting conditions are met, and a big prize lottery is held based on the read special 1 reserves. At this time, the probability of winning a big prize is set to approximately 1/300.6. Under normal conditions, the game is played with the aim of winning a big prize in the big prize lottery based on this special 1 reserve. Note that the prize ball ratio when a game ball is fired toward the first game area 116a is set to 100:20, and the game balls will decrease during play.

そして、通常状態において、特1保留による大役抽選で大当たりに当選すると、大役遊技が実行される。この大役遊技では、第1大入賞口126が開放されるラウンド遊技が4回または10回実行され、遊技者は4ラウンドまたは10ラウンド分の賞球を獲得することができる。そして、特1保留によって大当たりに当選した場合には、大当たり図柄として特別図柄A~Eのいずれかが決定される。 In the normal state, if a jackpot is won in the big prize lottery using the special 1 reservation, a big prize game is executed. In this big prize game, the first big prize opening 126 is opened and a round game is executed four or ten times, allowing the player to win four or ten rounds of prize balls. If a jackpot is won using the special 1 reservation, one of the special patterns A to E is determined as the jackpot pattern.

通常状態において、第1特別図柄表示器160に停止表示された大当たり図柄が特別図柄Aであった場合、大役遊技後の遊技状態は、図19の(b)に示す低確時短状態となる。特1保留で大当たりに当選した場合に、大当たり図柄として特別図柄Aが決定される確率は30%である。したがって、通常状態で大当たりに当選した場合、30%の確率で、遊技状態が低確時短状態に移行する。低確時短状態では、実質変動対象が特1保留に設定されているが、普通遊技状態が時短遊技状態であるため、遊技者は第1可変始動口120Bに遊技球を入球させるべく、第2遊技領域116bを狙った右打ちを行うこととなる。 In the normal state, if the jackpot symbol stopped and displayed on the first special symbol display 160 is special symbol A, the game state after the big win will be the low-probability time-saving state shown in FIG. 19(b). When a jackpot is won with special 1 reserved, there is a 30% probability that special symbol A will be determined as the jackpot symbol. Therefore, when a jackpot is won in the normal state, there is a 30% probability that the game state will transition to the low-probability time-saving state. In the low-probability time-saving state, the actual variable target is set to special 1 reserved, but since the normal game state is the time-saving game state, the player will hit the ball to the right, aiming at the second game area 116b, in order to get the game ball to enter the first variable start hole 120B.

つまり、この低確時短状態では、通常状態と同様、特1保留に基づく大役抽選において、大当たりに当選することを目的として遊技を行うこととなる。なお、低確時短状態は、大当たりの当選確率が約1/300.6であるが、普通遊技状態が時短遊技状態であることから、可動片120bが頻繁に開状態となる。そのため、発射賞球比率は100:99となり、遊技者は、遊技球の費消を低減しながら、大当たりの当選を狙うことができる。 In other words, in this low-probability time-saving state, just like in the normal state, the player plays with the goal of winning the jackpot in the big prize lottery based on the special 1 reserve. In the low-probability time-saving state, the probability of winning the jackpot is approximately 1/300.6, but since the normal game state is a time-saving game state, the movable piece 120b frequently opens. Therefore, the ratio of fired prize balls is 100:99, and the player can aim for a jackpot while reducing the consumption of game balls.

なお、低確時短状態に移行すると、時短回数が100回に設定され、100回の大役抽選で大当たりに当選しなかった場合には、遊技状態が再び通常状態に移行することとなる(時短抜け)。 When the game transitions to the low probability time-saving state, the number of time-saving times is set to 100, and if no jackpot is won in the 100 big prize draws, the game state will transition back to the normal state (time-saving time ...

また、通常状態において、第1特別図柄表示器160に停止表示された大当たり図柄が特別図柄B、Dであった場合、大役遊技後の遊技状態は、図19の(c)に示す高確時短状態となる。特1保留で大当たりに当選した場合に、大当たり図柄として特別図柄B、Dが決定される確率は35%である。したがって、通常状態で大当たりに当選した場合、35%の確率で、遊技状態が高確時短状態に移行する。高確時短状態では、実質変動対象が特1保留に設定されているが、普通遊技状態が時短遊技状態であるため、遊技者は第1可変始動口120Bに遊技球を入球させるべく、第2遊技領域116bを狙った右打ちを行うこととなる。 In addition, in the normal state, if the jackpot pattern displayed on the first special pattern display 160 is the special pattern B or D, the game state after the big win will be the high probability time-saving state shown in FIG. 19(c). When a jackpot is won with the special 1 reserved, there is a 35% probability that the special pattern B or D will be determined as the jackpot pattern. Therefore, when a jackpot is won in the normal state, there is a 35% probability that the game state will transition to the high probability time-saving state. In the high probability time-saving state, the actual variable target is set to the special 1 reserved, but since the normal game state is the time-saving game state, the player will hit the ball to the right, aiming at the second game area 116b, in order to get the game ball into the first variable start hole 120B.

つまり、この高確時短状態では、通常状態と同様、特1保留に基づく大役抽選において、大当たりに当選することを目的として遊技を行うこととなる。なお、高確時短状態は、大当たりの当選確率が約1/105.7であり、普通遊技状態が時短遊技状態であることから、可動片120bが頻繁に開状態となる。そのため、発射賞球比率は100:99となり、遊技者は、遊技球の費消を低減しながら、大役抽選を行うことができる。したがって、高確時短状態では、実質上、次回の大当たりの当選が確約された状態と言える。 In other words, in this high-probability time-saving state, just like in the normal state, the player plays with the goal of winning the jackpot in the lottery for the big prize based on the special 1 reservation. In the high-probability time-saving state, the probability of winning the jackpot is approximately 1/105.7, and since the normal game state is a time-saving game state, the movable piece 120b frequently opens. Therefore, the ratio of fired prize balls is 100:99, and the player can play the lottery for the big prize while reducing the consumption of game balls. Therefore, in the high-probability time-saving state, it can be said that the next jackpot is essentially guaranteed to be won.

また、通常状態において、第1特別図柄表示器160に停止表示された大当たり図柄が特別図柄C、Eであった場合、大役遊技後の遊技状態は、図19の(d)に示す高確前兆状態となる。特1保留で大当たりに当選した場合に、大当たり図柄として特別図柄C、Eが決定される確率は35%である。したがって、通常状態で大当たりに当選した場合、35%の確率で、遊技状態が高確前兆状態に移行する。高確前兆状態では、実質変動対象が特1保留に設定されているが、普通遊技状態が時短遊技状態であるため、遊技者は第1可変始動口120Bに遊技球を入球させるべく、第2遊技領域116bを狙った右打ちを行うこととなる。 In addition, in the normal state, if the jackpot pattern displayed on the first special pattern display 160 is the special pattern C or E, the game state after the big win game will be the high probability premonition state shown in FIG. 19(d). When a jackpot is won with the special 1 reserved, there is a 35% probability that the special patterns C or E will be determined as the jackpot pattern. Therefore, when a jackpot is won in the normal state, there is a 35% probability that the game state will transition to the high probability premonition state. In the high probability premonition state, the actual variable target is set to the special 1 reserved, but since the normal game state is the time-saving game state, the player will hit the ball to the right, aiming at the second game area 116b, in order to get the game ball to enter the first variable start hole 120B.

そして、特別図柄C、Eが決定された場合には、高確前兆状態に設定されるとともに、時短回数が100回に設定される。このとき、大役遊技後の変動回数が100回に到達すると、時短遊技状態が終了し、普通遊技状態が非時短遊技状態となる。その結果、時短抜けにより、遊技状態が図19の(e)に示す最優位状態に移行することとなる。詳しくは後述するように、最優位状態では、第2遊技領域116bに向けて遊技球を発射し続けるだけで、遊技球を増加させることができる。したがって、高確前兆状態では、大当たりの当選が遊技の目的となるのではなく、大当たりに当選せずに、時短抜けすることが遊技の目的となる。 When the special symbols C or E are selected, the game is set to a high probability premonition state and the time-saving count is set to 100. When the number of changes after the big win reaches 100, the time-saving game state ends and the normal game state becomes a non-time-saving game state. As a result, the game state transitions to the most advantageous state shown in FIG. 19(e) due to the time-saving end. As will be described in detail later, in the most advantageous state, the number of game balls can be increased simply by continuing to fire game balls toward the second game area 116b. Therefore, in the high probability premonition state, the objective of the game is not to win a jackpot, but to end the time-saving state without winning a jackpot.

上記の高確前兆状態、高確時短状態、低確時短状態における実質変動対象の特1保留によれば、大当たりに当選した場合に、大当たり図柄として特別図柄A~Eが決定される。特別図柄Aが決定されると、大役遊技において4回のラウンド遊技が実行されるとともに、大役遊技後の遊技状態が、図19の(b)に示す低確時短状態となる。また、特別図柄B、Dが決定された場合、大役遊技において4回または10回のラウンド遊技が実行されるとともに、大役遊技後の遊技状態が高確時短状態となる。また、特別図柄C、Eが決定された場合、大役遊技において4回または10回のラウンド遊技が実行されるとともに、大役遊技後の遊技状態が、高確前兆状態となる。 According to the special 1 reserve that is the actual variable target in the high probability premonition state, high probability time-saving state, and low probability time-saving state described above, when a jackpot is won, special patterns A to E are determined as the jackpot pattern. When special pattern A is determined, four rounds of play are executed in the big prize game, and the game state after the big prize game becomes the low probability time-saving state shown in FIG. 19(b). Also, when special patterns B or D are determined, four or ten rounds of play are executed in the big prize game, and the game state after the big prize game becomes the high probability time-saving state. Also, when special patterns C or E are determined, four or ten rounds of play are executed in the big prize game, and the game state after the big prize game becomes the high probability premonition state.

最優位状態では、第2始動口122に遊技球が入球すると特2保留が第2特図保留記憶領域に記憶される。第2特図保留記憶領域に記憶された特2保留は、始動条件の成立により順次読み出され、読み出した特2保留に基づく大役抽選が行われる。このとき、大当たりの当選確率は約1/105.7に設定されており、また、小当たりの当選確率は約1/3.45に設定されている。最優位状態では、この特2保留に基づく大役抽選において、小当たりに当選することが遊技の最大の目的となる。 In the most advantageous state, when a game ball enters the second starting hole 122, the special 2 reserve is stored in the second special chart reserve memory area. The special 2 reserves stored in the second special chart reserve memory area are read out sequentially when the starting conditions are met, and a lottery for a big prize is held based on the read special 2 reserves. At this time, the probability of winning a big prize is set to approximately 1/105.7, and the probability of winning a small prize is set to approximately 1/3.45. In the most advantageous state, the main objective of the game is to win a small prize in the lottery for a big prize based on this special 2 reserve.

具体的には、第2遊技領域116bに遊技球を発射させた場合、発射球数に対する、第2始動口122への遊技球の入球によって払い出される賞球の比率は、100:60~80程度に設定されている。そして、最優位状態では、特2保留による大役抽選において、約1/3.45の確率で小当たりに当選するため、小当たり遊技が頻繁に行われる。ここで、特2保留によって小当たりに当選した場合には、小当たり図柄Z4~Z6が決定される。上記したように、小当たり図柄Z4が第2特別図柄表示器162に停止表示された場合の小当たり遊技では、平均2~3個の遊技球が第2大入賞口128に入球する。小当たり図柄Z5が第2特別図柄表示器162に停止表示された場合の小当たり遊技では、平均3~4個の遊技球が第2大入賞口128に入球する。さらに、小当たり図柄Z6が第2特別図柄表示器162に停止表示された場合の小当たり遊技では、ほぼ規定数の遊技球が第2大入賞口128に入球する。 Specifically, when a game ball is shot into the second game area 116b, the ratio of prize balls paid out by the game ball entering the second start hole 122 to the number of shot balls is set to about 100:60 to 80. In the most advantageous state, the probability of winning a small prize in the large role lottery by the special 2 reservation is about 1/3.45, so small prize games are frequently played. Here, when a small prize is won by the special 2 reservation, small prize patterns Z4 to Z6 are determined. As described above, in a small prize game when the small prize pattern Z4 is stopped and displayed on the second special pattern display 162, an average of 2 to 3 game balls enter the second large prize hole 128. In a small prize game when the small prize pattern Z5 is stopped and displayed on the second special pattern display 162, an average of 3 to 4 game balls enter the second large prize hole 128. Furthermore, in a small win game in which the small win symbol Z6 is stopped and displayed on the second special symbol display 162, approximately the specified number of game balls enter the second large winning hole 128.

第2大入賞口128に遊技球が入球すると、例えば、1個の遊技球の入球に対して15個の賞球が払い出される。これにより、最優位状態では、発射球数に対する全ての賞球数の比率である発射賞球比率が100:120となり、第2遊技領域116bに向けて遊技球を発射し続けるだけで、遊技球を増加させることができる。 When a game ball enters the second large prize opening 128, for example, 15 prize balls are paid out for each game ball that enters. As a result, in the most advantageous state, the fired prize ball ratio, which is the ratio of the number of all prize balls to the number of fired balls, is 100:120, and the number of game balls can be increased simply by continuing to fire game balls toward the second game area 116b.

なお、この最優位状態では、普通遊技状態が非時短遊技状態となっており、可動片120bが開状態となることは殆どない。また、最優位状態では、特別遊技状態が高確率遊技状態となっており、最優位状態における大当たりの当選確率が約1/105.7であることから、最優位状態では、実質上、次回の大当たりの当選が確約された状態と言える。 In addition, in this most advantageous state, the normal game state is a non-time-saving game state, and the movable piece 120b is almost never in the open state. Also, in the most advantageous state, the special game state is a high probability game state, and since the probability of winning a jackpot in the most advantageous state is approximately 1 in 105.7, in the most advantageous state, it can be said that the next jackpot is essentially guaranteed to be won.

この最優位状態における実質変動対象の特2保留によれば、大当たりに当選した場合に、大当たり図柄として特別図柄F~Jが決定される。特別図柄Fが決定された場合、大役遊技において4回のラウンド遊技が実行されるとともに、大役遊技後の遊技状態が、図19の(b)に示す低確時短状態となる。また、特別図柄G、Iが決定された場合、大役遊技において4回または10回のラウンド遊技が実行されるとともに、大役遊技後の遊技状態が高確時短状態となる。また、特別図柄H、Jが決定された場合、大役遊技において4回または10回のラウンド遊技が実行されるとともに、大役遊技後の遊技状態が、高確前兆状態となる。 According to the special 2 reserve that is the actual variable target in this most advantageous state, when a jackpot is won, special symbols F to J are determined as the jackpot symbol. When special symbol F is determined, four rounds of play are executed in the big prize game, and the game state after the big prize game becomes a low-probability time-saving state as shown in FIG. 19(b). When special symbols G or I are determined, four or ten rounds of play are executed in the big prize game, and the game state after the big prize game becomes a high-probability time-saving state. When special symbols H or J are determined, four or ten rounds of play are executed in the big prize game, and the game state after the big prize game becomes a high-probability precursor state.

最優位状態は、他の遊技状態に比べて、有利度合いが極めて高いため、遊技機100における遊技の最大の目的は、遊技状態を最優位状態に移行させることとなる。上記のとおり、遊技はまず、通常状態で開始されるが、この通常状態から一気に最優位状態に移行することはない。そのため、高確前兆状態を経由して最優位状態へ移行するという移行ルートが、遊技機100における最優位状態への移行ルートとなる。 The most advantageous state is much more advantageous than other game states, so the main objective of playing on the gaming machine 100 is to transition the game state to the most advantageous state. As described above, the game first starts in the normal state, but there is no immediate transition from this normal state to the most advantageous state. Therefore, the transition route to the most advantageous state on the gaming machine 100 is the transition route that transitions to the most advantageous state via the high probability precursor state.

さらに、同時回し参考例では、高確前兆状態における時短抜けとは別に、特定の小当たり図柄に当選することが、高確前兆状態から最優位状態への移行条件として設定されている。具体的には、高確前兆状態における実質変動対象である特1保留によって小当たりに当選した場合、小当たり図柄として、特別図柄Z1が1%、特別図柄Z2が69%、特別図柄Z3が30%の確率で決定される(図8(c)参照)。 Furthermore, in the simultaneous spin reference example, aside from the time-saving feature escaping in the high probability premonition state, the condition for transitioning from the high probability premonition state to the most advantageous state is set to be the winning of a specific small win symbol. Specifically, when a small win is won by the special 1 reserve, which is the actual variable subject in the high probability premonition state, the small win symbol is determined to be special symbol Z1 with a probability of 1%, special symbol Z2 with a probability of 69%, and special symbol Z3 with a probability of 30% (see Figure 8 (c)).

このとき、小当たり図柄として特別図柄Z1が決定されると、小当たり遊技の終了に伴って時短遊技状態が終了し、その結果、遊技状態が最優位状態へと移行することとなる。 At this time, if the special pattern Z1 is determined as the small win pattern, the time-saving game state ends with the end of the small win game, and as a result, the game state transitions to the most advantageous state.

このように、特定の小当たりの当選によって最優位状態に移行することから、変動回数が規定回数(100回)に達したときにのみ最優位状態に移行する場合に比べて、遊技者に対して、常時、期待感と緊張感とが付与される。 In this way, the player transitions to the most advantageous state upon winning a specific small jackpot, which creates a constant sense of expectation and tension for the player, compared to a situation where the most advantageous state is only reached when the number of fluctuations reaches a specified number (100 times).

なお、上記の高確前兆状態、高確時短状態、低確時短状態においては、約1/3.45の確率で小当たりに当選する。そのため、高確前兆状態、高確時短状態、低確時短状態においても、最優位状態と同様に、頻繁に小当たり遊技が実行される。しかしながら、高確前兆状態、高確時短状態、低確時短状態は、いずれも普通遊技状態が時短遊技状態である。また、詳しくは後述するが、小当たり遊技中も、普通遊技状態は時短遊技状態に維持されている。そのため、小当たり遊技中に第2大入賞口128が開放されるものの、この間に、第1可変始動口120Bも開放されてしまう。 In addition, in the high probability premonition state, high probability time-saving state, and low probability time-saving state, there is a probability of about 1 in 3.45 of winning a small jackpot. Therefore, in the high probability premonition state, high probability time-saving state, and low probability time-saving state, small jackpot play is frequently executed, just like in the most advantageous state. However, in the high probability premonition state, high probability time-saving state, and low probability time-saving state, the normal play state is a time-saving play state. Also, as will be described in detail later, the normal play state is maintained in the time-saving play state even during a small jackpot play. Therefore, although the second large prize winning port 128 is opened during a small jackpot play, the first variable start port 120B is also opened during this time.

上記したように、第1可変始動口120Bは、第2大入賞口128よりも上方に設けられており、しかも、時短遊技状態では、第1可変始動口120Bの開放時間が、第2大入賞口128の開放時間よりも極めて長い。そのため、高確前兆状態、高確時短状態、低確時短状態においては、第2遊技領域116bを流下する遊技球の殆どが第1可変始動口120Bに入球し、第2大入賞口128には殆ど遊技球が入球することはない。その結果、高確前兆状態、高確時短状態、低確時短状態においては、最優位状態とは異なり、遊技中に右打ちを行ったとしても、遊技球が徐々に減少することとなる。 As described above, the first variable start port 120B is located above the second large winning port 128, and in the time-saving game state, the opening time of the first variable start port 120B is much longer than the opening time of the second large winning port 128. Therefore, in the high probability premonition state, high probability time-saving state, and low probability time-saving state, most of the game balls flowing down the second game area 116b enter the first variable start port 120B, and almost no game balls enter the second large winning port 128. As a result, in the high probability premonition state, high probability time-saving state, and low probability time-saving state, unlike the most advantageous state, the game balls will gradually decrease even if a right hit is made during play.

以上のように、本来の遊技性に則って実質変動対象によって遊技が進行すると、大当たりに当選した場合、大役遊技後の遊技状態が、低確時短状態、高確時短状態、高確前兆状態のいずれかに設定される。そして、高確時短状態および高確前兆状態は、特別遊技状態が高確率遊技状態であり、普通遊技状態が時短遊技状態であることが共通している。一方で、高確時短状態は、次回の大当たりに当選するまで継続するのに対して、高確前兆状態は、特定の小当たり(特別図柄Z1)に当選するか、時短抜けすることで、遊技状態が最優位状態に移行される点で相違する。 As described above, when the game progresses according to the actual variable object in accordance with the original gameplay, if a jackpot is won, the game state after the big win is set to either a low-probability time-saving state, a high-probability time-saving state, or a high-probability premonition state. The high-probability time-saving state and the high-probability premonition state have in common that the special game state is a high-probability game state, and the normal game state is a time-saving game state. On the other hand, the high-probability time-saving state continues until the next jackpot is won, whereas the high-probability premonition state differs in that the game state transitions to the most advantageous state when a specific small jackpot (special pattern Z1) is won or the time-saving state ends.

また、高確時短状態では、小当たり時およびハズレ時の変動時間が1秒に設定されるのに対して、高確前兆状態では、小当たり時およびハズレ時の変動時間が3~10秒の範囲内で設定される点で相違する(図13(b)参照)。つまり、高確時短状態における変動時間の平均は、高確前兆状態における変動時間の平均よりも短く設定される。 Also, in the high-probability time-saving state, the fluctuation time for small wins and misses is set to 1 second, whereas in the high-probability premonition state, the fluctuation time for small wins and misses is set within the range of 3 to 10 seconds (see Figure 13 (b)). In other words, the average fluctuation time in the high-probability time-saving state is set shorter than the average fluctuation time in the high-probability premonition state.

したがって、高確時短状態では、小当たり時およびハズレ時の変動時間が相対的に短いため、大当たりに当選するまで、実質変動対象を高速で消化することができる。詳しい説明は省略するが、特別図柄の変動時間では、副制御基板330において演出図柄210a、210b、210cの変動表示が行われる。高確時短状態では、演出図柄210a、210b、210cの変動表示も相対的に短くなる。そのため、高確時短状態では、特1保留が記憶され続ける限り、特1保留(演出図柄210a、210b、210cの変動表示)が高速で消化され続けることになり、大当たりに当選するまでの時間を短くすることができ、遊技者にストレスを感じさせることなく(低減して)、次回の大当たりまで遊技を行わせることができる。 Therefore, in the high probability time-saving state, the time of change during small wins and misses is relatively short, so that the actual change target can be consumed at high speed until a big win is won. Although detailed explanation is omitted, during the change time of the special pattern, the change display of the performance patterns 210a, 210b, and 210c is performed on the sub-control board 330. In the high probability time-saving state, the change display of the performance patterns 210a, 210b, and 210c also becomes relatively short. Therefore, in the high probability time-saving state, as long as the special 1 reservation continues to be stored, the special 1 reservation (the change display of the performance patterns 210a, 210b, and 210c) continues to be consumed at high speed, so that the time until a big win can be shortened, and the player can play until the next big win without feeling (reducing) stress.

一方、高確前兆状態では、小当たり時およびハズレ時の変動時間が相対的に長いが、副制御基板330においては、最優位状態に移行するか否かの演出が行われる。そのため、遊技者は最優位状態に移行するのではないかと期待しながら遊技を行うことができる。 On the other hand, in the high probability premonition state, the fluctuation time during small wins and misses is relatively long, but the sub-control board 330 performs a presentation to see whether or not the most advantageous state will be entered. Therefore, the player can play while hoping that the most advantageous state will be entered.

このように、高確時短状態では、特定の小当たり(特別図柄Z1)に当選しても最優位状態に移行することはないが、変動時間の平均が短く設定されることで、次回の大当たりの当選までの時間を短くでき、遊技者へのストレスを低減することができる。また、高確前兆状態では、高確時短状態と比べて変動時間の平均が長く設定されているが、その変動時間で、最優位状態に移行するか否かの演出を行うことができ、遊技者に期待感と緊張感とを付与することができる。 In this way, in the high-probability time-saving state, even if a specific small jackpot (special pattern Z1) is won, there will be no transition to the most advantageous state, but by setting the average fluctuation time to a short value, the time until the next big jackpot is won can be shortened, reducing stress for the player. Also, in the high-probability precursor state, the average fluctuation time is set to be longer than in the high-probability time-saving state, but during that fluctuation time, it is possible to perform a presentation as to whether or not the most advantageous state will be entered, creating a sense of expectation and tension for the player.

以上のように、特別遊技状態が高確率遊技状態であり、普通遊技状態が時短遊技状態であることが共通している高確時短状態および高確前兆状態が設けられ、高確時短状態の変動時間の平均を高確前兆状態の変動時間の平均よりも短くすることで、新たな遊技性を提供することができる。 As described above, a high-probability time-saving state and a high-probability precursor state are provided, which have in common that the special game state is a high-probability game state and the normal game state is a time-saving game state, and by making the average fluctuation time of the high-probability time-saving state shorter than the average fluctuation time of the high-probability precursor state, new gameplay can be provided.

図20は、同時回し参考例に係る適切に遊技が行われなかった場合の遊技状態の遷移を説明する図である。上記のように、遊技機100では、第1特別図柄表示器160における図柄の変動表示と、第2特別図柄表示器162における図柄の変動表示とが、同時並行して行われる。このとき、実質変動対象以外の保留によって大役抽選が行われた結果、遊技者に不利益が生じる可能性がある場合については、変動時間を10分といった長時間に設定している。しかしながら、実質変動対象以外の保留によって大役抽選が行われた後、例えば、遊技を中断してしまう等した結果、実質変動対象以外の保留による大当たりが確定してしまうこともある。この場合には、図20に示すように遊技状態が遷移することとなる。 Figure 20 is a diagram explaining the transition of the game state when the game is not played properly in the simultaneous spin reference example. As described above, in the gaming machine 100, the display of the changing patterns on the first special pattern display 160 and the display of the changing patterns on the second special pattern display 162 are performed simultaneously in parallel. At this time, if a large role lottery is performed based on a reservation other than the actual change target, and there is a possibility that the player may suffer a disadvantage as a result, the change time is set to a long time such as 10 minutes. However, after a large role lottery is performed based on a reservation other than the actual change target, for example, if the game is interrupted, a large win based on a reservation other than the actual change target may be confirmed. In this case, the game state will transition as shown in Figure 20.

以下に、上記の遊技性を実現するための、主制御基板300の主な処理について説明する。 The main processing of the main control board 300 to achieve the above gameplay characteristics is explained below.

図21は、同時回し参考例に係る遊技機状態フラグを説明する図である。主制御基板300においては、遊技を進行可能な状態であるか否かが遊技機状態フラグにより管理される。遊技機状態フラグには、00H~05Hの6種類のフラグ値のいずれかがセットされる。遊技機状態フラグのフラグ値=00Hは遊技可能状態を示しており、遊技機状態フラグが00Hである場合に、遊技が進行制御され、遊技機状態フラグが00H以外である場合には、遊技が停止される。 Figure 21 is a diagram explaining the gaming machine status flag for the simultaneous spin reference example. In the main control board 300, the gaming machine status flag manages whether or not the game can proceed. The gaming machine status flag is set to one of six flag values from 00H to 05H. A flag value of 00H for the gaming machine status flag indicates a playable state. When the gaming machine status flag is 00H, the game is controlled to proceed, and when the gaming machine status flag is other than 00H, the game is stopped.

遊技機状態フラグのフラグ値=01Hは設定変更状態を示しており、遊技機状態フラグが01Hである場合には、登録設定値の変更操作が可能となる。遊技機状態フラグのフラグ値=02Hは設定確認状態を示しており、遊技機状態フラグが02Hである場合には、登録設定値が性能表示モニタ184に表示される等して、登録設定値を確認することが可能となる。遊技機状態フラグのフラグ値=03Hは設定異常状態を示しており、遊技機状態フラグが03Hである場合には、登録設定値が異常であるとして遊技が停止される。遊技機状態フラグのフラグ値=04HはRAM異常状態を示しており、遊技機状態フラグが04Hである場合には、遊技が停止される。遊技機状態フラグのフラグ値=05Hはチェックサム異常状態を示しており、遊技機状態フラグが05Hである場合には、遊技が停止される。電源が投入されると、遊技機状態フラグがいずれかのフラグ値にセットされ、遊技機状態フラグに応じた処理が行われる。 The flag value of the gaming machine status flag = 01H indicates a setting change state, and when the gaming machine status flag is 01H, the registered setting value can be changed. The flag value of the gaming machine status flag = 02H indicates a setting confirmation state, and when the gaming machine status flag is 02H, the registered setting value can be confirmed by displaying it on the performance display monitor 184, for example. The flag value of the gaming machine status flag = 03H indicates a setting abnormal state, and when the gaming machine status flag is 03H, the registered setting value is considered abnormal and play is stopped. The flag value of the gaming machine status flag = 04H indicates a RAM abnormal state, and when the gaming machine status flag is 04H, play is stopped. The flag value of the gaming machine status flag = 05H indicates a checksum abnormal state, and when the gaming machine status flag is 05H, play is stopped. When the power is turned on, the gaming machine status flag is set to one of the flag values, and processing according to the gaming machine status flag is performed.

(主制御基板300のCPU初期化処理)
図22は、同時回し参考例に係る主制御基板300におけるCPU初期化処理を説明する第1のフローチャートであり、図23は、同時回し参考例に係る主制御基板300におけるCPU初期化処理を説明する第2のフローチャートである。
(CPU Initialization Processing of Main Control Board 300)
FIG. 22 is a first flowchart explaining the CPU initialization processing in the main control board 300 relating to the simultaneous rotation reference example, and FIG. 23 is a second flowchart explaining the CPU initialization processing in the main control board 300 relating to the simultaneous rotation reference example.

電源基板より電源が供給されると、メインCPU300aにシステムリセットが発生し、メインCPU300aは、以下のCPU初期化処理(S100)を行う。 When power is supplied from the power supply board, a system reset occurs in the main CPU 300a, and the main CPU 300a performs the following CPU initialization process (S100).

(ステップS100-1)
メインCPU300aは、電源投入に応じて、初期設定処理として、メインROM300bから起動プログラムを読み込むとともに、各種処理を実行するために必要な設定処理を行う。
(Step S100-1)
When the power is turned on, the main CPU 300a reads a startup program from the main ROM 300b as an initial setting process, and also performs setting processes required for executing various processes.

(ステップS100-3)
メインCPU300aは、タイマカウンタにウェイト処理時間を設定する。
(Step S100-3)
The main CPU 300a sets a wait processing time in a timer counter.

(ステップS100-5)
メインCPU300aは、電源断予告信号を検出しているかを判定する。なお、主制御基板300には、電源断検知回路が設けられており、電源電圧が所定値以下になると、電源断検知回路から電源断予告信号が出力される。電源断予告信号を検出している場合には、上記ステップS100-3に処理を移し、電源断予告信号を検出していない場合には、ステップS100-7に処理を移す。
(Step S100-5)
The main CPU 300a judges whether a power-off warning signal has been detected. The main control board 300 is provided with a power-off detection circuit, which outputs a power-off warning signal when the power supply voltage falls below a predetermined value. If a power-off warning signal has been detected, the process proceeds to step S100-3, and if a power-off warning signal has not been detected, the process proceeds to step S100-7.

(ステップS100-7)
メインCPU300aは、上記ステップS100-3で設定したウェイト時間が経過したか否かを判定する。その結果、ウェイト時間が経過したと判定した場合にはステップS100-9に処理を移し、ウェイト時間は経過していないと判定した場合には上記ステップS100-5に処理を移す。
(Step S100-7)
The main CPU 300a judges whether the wait time set in step S100-3 has elapsed or not. If it is judged that the wait time has elapsed, the process proceeds to step S100-9, and if it is judged that the wait time has not elapsed, the process proceeds to step S100-5.

(ステップS100-9)
メインCPU300aは、メインRAM300cへのアクセスを許可するために必要な処理を実行する。
(Step S100-9)
The main CPU 300a executes the processes required to permit access to the main RAM 300c.

(ステップS100-11)
メインCPU300aは、Dレジスタに電源断前の遊技機状態フラグのフラグ値をロードする。
(Step S100-11)
The main CPU 300a loads the flag value of the gaming machine status flag before the power is turned off into the D register.

(ステップS100-13)
メインCPU300aは、チェックサムを算出するとともに、算出したチェックサムが、電源断時に保存されたチェックサムと一致する(正常である)か、ならびに、バックアップフラグが正常であるかを判定する。その結果、バックアップフラグおよびチェックサムが正常であると判定した場合にはステップS100-15に処理を移し、いずれか一方または双方が正常ではないと判定した場合にはステップS100-25に処理を移す。
(Step S100-13)
The main CPU 300a calculates the checksum and determines whether the calculated checksum matches the checksum saved when the power was turned off (is normal) and whether the backup flag is normal. If it is determined that the backup flag and the checksum are normal, the process proceeds to step S100-15, and if it is determined that either one or both are not normal, the process proceeds to step S100-25.

(ステップS100-15)
メインCPU300aは、メインRAM300cのクリア対象の先頭アドレスに、設定値および遊技機状態フラグを含まない番地をセットする。
(Step S100-15)
The main CPU 300a sets an address that does not include a setting value or a gaming machine status flag as the first address to be cleared in the main RAM 300c.

(ステップS100-17)
メインCPU300aは、RAMクリアスイッチ182sからRAMクリア操作信号が入力されているか(RAMクリアボタンが押下操作されているか)を判定する。その結果、RAMクリア操作信号が入力されていると判定した場合にはステップS100-31に処理を移し、RAMクリア操作信号は入力されていないと判定した場合にはステップS100-19に処理を移す。
(Step S100-17)
The main CPU 300a judges whether a RAM clear operation signal has been input from the RAM clear switch 182s (whether the RAM clear button has been pressed down). If it is judged that a RAM clear operation signal has been input, the process proceeds to step S100-31, and if it is judged that a RAM clear operation signal has not been input, the process proceeds to step S100-19.

(ステップS100-19)
メインCPU300aは、上記ステップS100-11でロードした遊技機状態フラグのフラグ値が00H(遊技可能状態)であり、設定変更スイッチ180sがオンしており、かつ、中枠104が開放しているかを判定する。その結果、3つの条件をすべて満たすと判定した場合にはステップS100-21に処理を移し、3つの条件の1つでも満たされないと判定した場合にはステップS100-23に処理を移す。
(Step S100-19)
The main CPU 300a judges whether the flag value of the gaming machine status flag loaded in step S100-11 is 00H (playable state), the setting change switch 180s is on, and the middle frame 104 is open. If it is judged that all three conditions are met, the process proceeds to step S100-21, and if it is judged that any one of the three conditions is not met, the process proceeds to step S100-23.

(ステップS100-21)
メインCPU300aは、遊技機状態フラグに02H(設定確認状態)をセットする。すなわち、中枠104が開放されており、設定変更スイッチ180sがオンしており、RAMクリアボタンが押下されていない状態で正常に電源投入がなされると、設定確認状態となる。
(Step S100-21)
The main CPU 300a sets the gaming machine status flag to 02H (setting confirmation status). That is, when the power is normally turned on in a state where the middle frame 104 is open, the setting change switch 180s is on, and the RAM clear button is not pressed, the gaming machine enters the setting confirmation status.

(ステップS100-23)
メインCPU300aは、メインRAM300cのうち、上記ステップS100-15でセットされた先頭アドレス以降の領域である電源復帰時のクリア対象をクリアする初期化処理を実行し、ステップS100-49に処理を移す。
(Step S100-23)
The main CPU 300a executes an initialization process to clear the areas of the main RAM 300c subsequent to the top address set in step S100-15 that are to be cleared when the power is restored, and then proceeds to step S100-49.

(ステップS100-25)
メインCPU300aは、Dレジスタに05H(チェックサム異常状態)をセットする。
(Step S100-25)
The main CPU 300a sets 05H (checksum abnormal state) in the D register.

(ステップS100-27)
メインCPU300aは、使用外領域のリードライトメモリのチェックおよびクリアを行う領域外リードライトチェック処理を行う。
(Step S100-27)
The main CPU 300a performs an outside area read/write check process for checking and clearing the read/write memory in the unused area.

(ステップS100-29)
メインCPU300aは、メインRAM300cのクリア対象の先頭アドレスに、設定値および遊技機状態フラグを含む番地をセットする。
(Step S100-29)
The main CPU 300a sets an address including a setting value and a gaming machine status flag as the first address to be cleared in the main RAM 300c.

(ステップS100-31)
メインCPU300aは、使用領域のリードライトメモリのチェックおよびクリアを行う。
(Step S100-31)
The main CPU 300a checks and clears the read/write memory of the used area.

(ステップS100-33)
メインCPU300aは、上記ステップS100-31におけるリードライトメモリのチェック結果が正常であるかを判定する。その結果、正常であると判定した場合にはステップS100-37に処理を移し、正常ではないと判定した場合にはステップS100-35に処理を移す。
(Step S100-33)
The main CPU 300a judges whether the check result of the read/write memory in the above step S100-31 is normal or not. If it is judged as normal, the process proceeds to step S100-37, and if it is judged as not normal, the process proceeds to step S100-35.

(ステップS100-35)
メインCPU300aは、Dレジスタに04H(RAM異常状態)をセットし、ステップS100-45に処理を移す。
(Step S100-35)
The main CPU 300a sets 04H (RAM abnormal state) in the D register, and moves the process to step S100-45.

(ステップS100-37)
メインCPU300aは、Dレジスタに02H(設定確認状態)がセットされているかを判定する。その結果、02Hがセットされていると判定した場合にはステップS100-39に処理を移し、02Hはセットされていないと判定した場合にはステップS100-41に処理を移す。
(Step S100-37)
The main CPU 300a judges whether 02H (setting confirmation state) is set in the D register. If it is judged that 02H is set, the process proceeds to step S100-39, and if it is judged that 02H is not set, the process proceeds to step S100-41.

(ステップS100-39)
メインCPU300aは、Dレジスタに00H(遊技可能状態)をセットする。
(Step S100-39)
The main CPU 300a sets the D register to 00H (playable state).

(ステップS100-41)
メインCPU300aは、設定変更条件を満たしているかを判定する。その結果、設定変更条件を満たしていると判定した場合にはステップS100-43に処理を移し、設定変更条件は満たしていないと判定した場合にはステップS100-45に処理を移す。なお、ここでは、設定変更条件に、設定変更スイッチ180sがオンしていること、中枠104が開放していること、および、RAMクリアスイッチ182sからRAMクリア操作信号が入力されていることが少なくとも含まれる。
(Step S100-41)
The main CPU 300a judges whether the setting change conditions are satisfied. If it is judged that the setting change conditions are satisfied, the process proceeds to step S100-43, and if it is judged that the setting change conditions are not satisfied, the process proceeds to step S100-45. Note that the setting change conditions here include at least that the setting change switch 180s is turned on, that the middle frame 104 is open, and that a RAM clear operation signal is input from the RAM clear switch 182s.

(ステップS100-43)
メインCPU300aは、Dレジスタに01H(設定変更状態)をセットする。
(Step S100-43)
The main CPU 300a sets the D register to 01H (setting changed state).

(ステップS100-45)
メインCPU300aは、Dレジスタにセットされている値を遊技機状態フラグにセーブする。
(Step S100-45)
The main CPU 300a saves the value set in the D register in the gaming machine status flag.

(ステップS100-47)
メインCPU300aは、メインRAM300cのうち、RAMクリア時のクリア対象をクリアする初期化処理を実行し、ステップS100-49に処理を移す。
(Step S100-47)
The main CPU 300a executes an initialization process for clearing the items in the main RAM 300c that are to be cleared when the RAM is cleared, and moves the process to step S100-49.

(ステップS100-49)
メインCPU300aは、メインRAM300cがクリアされたことを払出制御基板310に伝達するための払出コマンド(RAMクリア指定コマンド)の送信処理(RAMクリア指定コマンドを送信バッファに格納)を行う。
(Step S100-49)
The main CPU 300a performs a transmission process (storing the RAM clear designation command in a transmission buffer) of a payout command (RAM clear designation command) to inform the payout control board 310 that the main RAM 300c has been cleared.

(ステップS100-51)
メインCPU300aは、遊技機状態フラグをロードする。
(Step S100-51)
The main CPU 300a loads the gaming machine status flag.

(ステップS100-53)
メインCPU300aは、上記ステップS100-51でロードした遊技機状態フラグが00H(遊技可能状態)であるかを判定する。その結果、00Hであると判定した場合にはステップS110に処理を移し、00Hではないと判定した場合にはステップS100-55に処理を移す。
(Step S100-53)
The main CPU 300a judges whether the gaming machine status flag loaded in step S100-51 is 00H (playable state). If it is judged to be 00H, the process proceeds to step S110, and if it is judged not to be 00H, the process proceeds to step S100-55.

(ステップS110)
メインCPU300aは、サブコマンド群セット処理を行う。なお、このサブコマンド群セット処理については後述する。
(Step S110)
The main CPU 300a performs a sub-command group set process, which will be described later.

(ステップS100-55)
メインCPU300aは、所定のコマンドを副制御基板330に送信するためのサブコマンド群セット処理を行う。
(Step S100-55)
The main CPU 300 a performs a sub-command group setting process for transmitting a predetermined command to the sub-control board 330 .

(ステップS100-57)
メインCPU300aは、タイマ割込みの周期を設定する。
(Step S100-57)
The main CPU 300a sets the timer interrupt period.

(ステップS100-59)
メインCPU300aは、割込みを禁止するための処理を行う。
(Step S100-59)
The main CPU 300a performs processing to disable interrupts.

(ステップS100-61)
メインCPU300aは、当たり図柄乱数用初期値更新乱数を更新する。なお、当たり図柄乱数用初期値更新乱数は、当たり図柄乱数の初期値および終了値を決定するためのものである。つまり、後述する当たり図柄乱数の更新処理によって当たり図柄乱数が、当たり図柄乱数用初期値更新乱数から、当該当たり図柄乱数用初期値更新乱数-1まで1周すると、当たり図柄乱数は、そのときの当たり図柄乱数用初期値更新乱数に更新されることとなる。
(Step S100-61)
The main CPU 300a updates the initial value update random number for the winning symbol random number. The initial value update random number for the winning symbol random number is for determining the initial value and the end value of the winning symbol random number. In other words, when the winning symbol random number goes through one cycle from the initial value update random number for the winning symbol random number to the initial value update random number for the winning symbol random number - 1 by the updating process of the winning symbol random number described later, the winning symbol random number is updated to the initial value update random number for the winning symbol random number at that time.

(ステップS100-63)
メインCPU300aは、払出制御基板310から受信した受信データ(主コマンド)を解析し、受信データに応じた種々の処理を実行する。
(Step S100-63)
The main CPU 300a analyzes the received data (main commands) received from the payout control board 310 and executes various processes according to the received data.

(ステップS100-65)
メインCPU300aは、送信バッファに格納されているサブコマンドを副制御基板330に送信するための処理を行う。
(Step S100-65)
The main CPU 300 a performs processing to transmit the sub-commands stored in the transmission buffer to the sub-control board 330 .

(ステップS100-67)
メインCPU300aは、割込みを許可するための処理を行う。
(Step S100-67)
The main CPU 300a performs processing to permit an interrupt.

(ステップS100-69)
メインCPU300aは、リーチグループ決定乱数、リーチモード決定乱数、変動パターン乱数を更新し、以後、上記ステップS100-59から処理を繰り返す。なお、以下では、変動演出パターンを決定するためのリーチグループ決定乱数、リーチモード決定乱数、変動パターン乱数を総称して変動演出用乱数と呼ぶ。
(Step S100-69)
The main CPU 300a updates the reach group determination random number, the reach mode determination random number, and the change pattern random number, and thereafter repeats the process from step S100-59. Note that, hereinafter, the reach group determination random number, the reach mode determination random number, and the change pattern random number for determining the change presentation pattern are collectively referred to as the change presentation random number.

図24は、同時回し参考例に係る主制御基板300におけるサブコマンド群セット処理(S110)を説明するフローチャートである。 Figure 24 is a flowchart explaining the sub-command group set process (S110) in the main control board 300 in the simultaneous rotation reference example.

(ステップS110-1)
メインCPU300aは、遊技機状態フラグのフラグ値をロードする。
(Step S110-1)
The main CPU 300a loads the flag value of the gaming machine status flag.

(ステップS110-3)
メインCPU300aは、所定のコマンドを副制御基板330に送信するためのサブコマンド群セット処理を行う。
(Step S110-3)
The main CPU 300 a performs a sub-command group setting process for transmitting a predetermined command to the sub-control board 330 .

(ステップS110-5)
メインCPU300aは、遊技機100の機種情報を示す機種コマンドを送信バッファにセットする機種コマンド設定処理を行う。
(Step S110-5)
The main CPU 300a performs a model command setting process to set a model command indicating model information of the gaming machine 100 in a transmission buffer.

(ステップS110-7)
メインCPU300aは、登録設定値を示す設定値指定コマンドを送信バッファにセットする設定値指定コマンド設定処理を行う。
(Step S110-7)
The main CPU 300a performs a setting value designation command setting process for setting a setting value designation command indicating a registered setting value in a transmission buffer.

(ステップS110-9)
メインCPU300aは、特1保留数を示す特図1保留指定コマンドを送信バッファにセットする特図1保留指定コマンド設定処理を行う。
(Step S110-9)
The main CPU 300a performs a special chart 1 reservation designation command setting process that sets a special chart 1 reservation designation command indicating the special chart 1 reservation number in a transmission buffer.

(ステップS110-11)
メインCPU300aは、特2保留数を示す特図2保留指定コマンドを送信バッファにセットする特図2保留指定コマンド設定処理を行う。
(Step S110-11)
The main CPU 300a performs a special chart 2 reservation designation command setting process that sets a special chart 2 reservation designation command indicating the special chart 2 reservation number in a transmission buffer.

(ステップS110-13)
メインCPU300aは、時短遊技状態の残り回数を示す回数コマンドを送信バッファにセットする回数コマンド設定処理を行う。
(Step S110-13)
The main CPU 300a performs a count command setting process for setting a count command indicating the remaining number of times in the time-shortened gaming state in a transmission buffer.

(ステップS110-15)
メインCPU300aは、変動パターン選択状態を示す変動パターン選択状態指定コマンドを送信バッファにセットする変動パターン選択状態指定コマンド設定処理を行う。
(Step S110-15)
The main CPU 300a performs a variation pattern selection state designation command setting process that sets a variation pattern selection state designation command indicating the variation pattern selection state in a transmission buffer.

(ステップS110-17)
メインCPU300aは、特別遊技管理フェーズを示す特図フェーズ指定コマンドを送信バッファにセットする特図フェーズ指定コマンド設定処理を行う。なお、特別遊技管理フェーズについては後述する。
(Step S110-17)
The main CPU 300a performs a special game phase designation command setting process for setting a special game phase designation command indicating a special game management phase in a transmission buffer. The special game management phase will be described later.

(ステップS110-19)
メインCPU300aは、特別遊技管理フェーズが特別図柄変動待ち状態であるかを判定する。その結果、特別図柄変動待ち状態であると判定した場合にはステップS110-21に処理を移し、特別図柄変動待ち状態ではないと判定した場合には当該サブコマンド群セット処理を終了する。
(Step S110-19)
The main CPU 300a judges whether the special game management phase is in a special symbol change waiting state. If it is judged that the special symbol change waiting state is in effect, the process proceeds to step S110-21, and if it is judged that the special symbol change waiting state is not in effect, the sub-command group set process is terminated.

(ステップS110-21)
メインCPU300aは、客待ち指定コマンドを送信バッファにセットし、当該サブコマンド群セット処理を終了する。
(Step S110-21)
The main CPU 300a sets the customer waiting designation command in the transmission buffer, and ends the sub-command group setting process.

次に、主制御基板300における割込み処理について説明する。ここでは、電源断時退避処理(XINT割込み処理)およびタイマ割込み処理について説明する。 Next, we will explain the interrupt processing in the main control board 300. Here, we will explain the power-off evacuation processing (XINT interrupt processing) and timer interrupt processing.

(主制御基板300の電源断時退避処理(XINT割込み処理))
図25は、同時回し参考例に係る主制御基板300における電源断時退避処理(XINT割込み処理)を説明するフローチャートである。メインCPU300aは、電源断検知回路を監視しており、電源電圧が所定値以下になると、CPU初期化処理に割り込んで電源断時退避処理を実行する。
(Power off save process of main control board 300 (XINT interrupt process))
25 is a flow chart for explaining the power-off save process (XINT interrupt process) in the main control board 300 according to the simultaneous rotation reference example. The main CPU 300a monitors the power-off detection circuit, and when the power supply voltage falls below a predetermined value, it interrupts the CPU initialization process and executes the power-off save process.

(ステップS300-1)
電源断予告信号が入力されると、メインCPU300aは、レジスタを退避する。
(Step S300-1)
When the power-off warning signal is input, the main CPU 300a saves the registers.

(ステップS300-3)
メインCPU300aは、電源断予告信号をチェックする。
(Step S300-3)
The main CPU 300a checks the power-off warning signal.

(ステップS300-5)
メインCPU300aは、電源断予告信号を検出しているかを判定する。その結果、電源断予告信号を検出していると判定した場合にはステップS300-11に処理を移し、電源断予告信号を検出していないと判定した場合にはステップS300-7に処理を移す。
(Step S300-5)
The main CPU 300a judges whether a power-off warning signal has been detected. If it is judged that a power-off warning signal has been detected, the process proceeds to step S300-11. If it is judged that a power-off warning signal has not been detected, the process proceeds to step S300-7.

(ステップS300-7)
メインCPU300aは、レジスタを復帰させる。
(Step S300-7)
The main CPU 300a restores the register.

(ステップS300-9)
メインCPU300aは、割込みを許可するための処理を行い、当該電源断時退避処理を終了する。
(Step S300-9)
The main CPU 300a performs processing to permit an interrupt, and ends the power-off save processing.

(ステップS300-11)
メインCPU300aは、出力ポートの出力を停止する出力ポートクリア処理を実行する。
(Step S300-11)
The main CPU 300a executes an output port clear process to stop the output of the output port.

(ステップS300-13)
メインCPU300aは、チェックサムを算出して保存するチェックサム設定処理を実行する。
(Step S300-13)
The main CPU 300a executes a checksum setting process that calculates and stores a checksum.

(ステップS300-15)
メインCPU300aは、メインRAM300cへのアクセスを禁止するために必要なRAMプロテクト設定処理を実行する。
(Step S300-15)
The main CPU 300a executes a RAM protect setting process required to prohibit access to the main RAM 300c.

(ステップS300-17)
メインCPU300aは、電源断発生監視時間を設定すべく、ループカウンタのカウンタ値に所定の電源断検出信号検出回数をセットする。
(Step S300-17)
In order to set the power interruption occurrence monitoring time, the main CPU 300a sets the counter value of a loop counter to a predetermined number of times the power interruption detection signal has been detected.

(ステップS300-19)
メインCPU300aは、電源断予告信号をチェックする。
(Step S300-19)
The main CPU 300a checks the power-off warning signal.

(ステップS300-21)
メインCPU300aは、電源断予告信号を検出しているかを判定する。その結果、電源断予告信号を検出していると判定した場合にはステップS300-17に処理を移し、電源断予告信号を検出していないと判定した場合にはステップS300-23に処理を移す。
(Step S300-21)
The main CPU 300a judges whether a power-off warning signal has been detected. If it is judged that a power-off warning signal has been detected, the process proceeds to step S300-17. If it is judged that a power-off warning signal has not been detected, the process proceeds to step S300-23.

(ステップS300-23)
メインCPU300aは、上記ステップS300-17でセットしたループカウンタの値を1減算する。
(Step S300-23)
The main CPU 300a subtracts 1 from the value of the loop counter set in step S300-17.

(ステップS300-25)
メインCPU300aは、ループカウンタのカウンタ値が0でないかを判定する。その結果、カウンタ値が0ではないと判定した場合にはステップS300-19に処理を移し、カウンタ値が0であると判定した場合には上記したCPU初期化処理(ステップS100)に移行する。
(Step S300-25)
The main CPU 300a judges whether the counter value of the loop counter is 0. If it is judged that the counter value is not 0, the process proceeds to step S300-19, and if it is judged that the counter value is 0, the process proceeds to the above-mentioned CPU initialization process (step S100).

なお、実際に電源断が生じた場合には、ステップS300-17~ステップS300-25をループしている間に遊技機100の稼働が停止する。 If a power outage actually occurs, operation of the gaming machine 100 will stop while steps S300-17 to S300-25 are looping.

(主制御基板300のタイマ割込み処理)
図26は、同時回し参考例に係る主制御基板300におけるタイマ割込み処理を説明するフローチャートである。主制御基板300には、所定の周期(同時回し参考例では4ミリ秒、以下「4ms」という)毎にクロックパルスを発生させるリセット用クロックパルス発生回路が設けられている。そして、リセット用クロックパルス発生回路によって、クロックパルスが発生すると、CPU初期化処理(ステップS100)に割り込んで、以下のタイマ割込み処理が実行される。
(Timer interrupt processing of main control board 300)
26 is a flow chart for explaining the timer interrupt process in the main control board 300 according to the simultaneous rotation reference example. The main control board 300 is provided with a reset clock pulse generating circuit that generates a clock pulse every predetermined period (4 milliseconds in the simultaneous rotation reference example, hereinafter referred to as "4 ms"). When a clock pulse is generated by the reset clock pulse generating circuit, the CPU initialization process (step S100) is interrupted and the following timer interrupt process is executed.

(ステップS400-1)
メインCPU300aは、レジスタを退避する。
(Step S400-1)
The main CPU 300a saves the registers.

(ステップS400-3)
メインCPU300aは、割込みを許可するための処理を行う。
(Step S400-3)
The main CPU 300a performs processing to permit an interrupt.

(ステップS400-5)
メインCPU300aは、コモン出力バッファにセットされたコモンデータを出力ポートに出力し、第1特別図柄表示器160、第2特別図柄表示器162、第1特別図柄保留表示器164、第2特別図柄保留表示器166、普通図柄表示器168、普通図柄保留表示器170、右打ち報知表示器172、性能表示モニタ184を点灯制御するダイナミックポート出力処理を実行する。
(Step S400-5)
The main CPU 300a outputs the common data set in the common output buffer to the output port, and executes dynamic port output processing which controls the lighting of the first special pattern display 160, the second special pattern display 162, the first special pattern reserved indicator 164, the second special pattern reserved indicator 166, the normal pattern display 168, the normal pattern reserved indicator 170, the right hit notification indicator 172, and the performance display monitor 184.

(ステップS400-7)
メインCPU300aは、各種の入力ポート情報を読み込み、最新のスイッチ状態を正確に取得するためのポート入力処理を実行する。
(Step S400-7)
The main CPU 300a reads various types of input port information and executes a port input process to accurately obtain the latest switch states.

(ステップS400-9)
メインCPU300aは、遊技機状態フラグのフラグ値をロードする。
(Step S400-9)
The main CPU 300a loads the flag value of the gaming machine status flag.

(ステップS400-11)
メインCPU300aは、上記ステップS400-9でロードしたフラグ値が00H(遊技可能状態)であるかを判定する。その結果、00Hであると判定した場合にはステップS400-15に処理を移し、00Hではないと判定した場合にはステップS400-13に処理を移す。
(Step S400-11)
The main CPU 300a judges whether the flag value loaded in step S400-9 is 00H (playable state). If it is judged to be 00H, the process proceeds to step S400-15, and if it is judged not to be 00H, the process proceeds to step S400-13.

(ステップS400-13)
メインCPU300aは、上記ステップS400-9でロードしたフラグ値が03H(設定異常状態)以上であるかを判定する。その結果、03H以上であると判定した場合にはステップS400-29に処理を移し、03H以上ではないと判定した場合にはステップS450に処理を移す。
(Step S400-13)
The main CPU 300a judges whether the flag value loaded in step S400-9 is equal to or greater than 03H (abnormal setting). If it is judged to be equal to or greater than 03H, the process proceeds to step S400-29. If it is judged to be equal to or greater than 03H, the process proceeds to step S450.

(ステップS450)
メインCPU300aは、設定関連処理を実行し、ステップS400-29に処理を移す。なお、設定関連処理については後述する。
(Step S450)
The main CPU 300a executes a setting-related process, and moves the process to step S400-29. The setting-related process will be described later.

(ステップS400-15)
メインCPU300aは、各種タイマカウンタを更新するタイマ更新処理を行う。ここで、各種タイマカウンタは、特に断る場合を除き、当該主制御基板300のタイマ割込み処理の度に減算され、0になると減算を停止する。
(Step S400-15)
The main CPU 300a performs a timer update process to update various timer counters. Here, unless otherwise specified, the timer counters are decremented every time the timer interrupt process of the main control board 300 is performed, and the decrement stops when the timer counters reach 0.

(ステップS400-17)
メインCPU300aは、上記ステップS100-61と同様、当たり図柄乱数用初期値更新乱数の更新処理を実行する。
(Step S400-17)
The main CPU 300a executes an update process for the initial value update random number for the winning symbol random number, similar to step S100-61 described above.

(ステップS400-19)
メインCPU300aは、当たり図柄乱数を更新する処理を行う。具体的には、乱数カウンタを1加算して更新し、加算した結果が乱数範囲の最大値を超えた場合には、乱数カウンタを0に戻し、乱数カウンタが1周した場合には、その時の当たり図柄乱数用初期値更新乱数の値から乱数を更新する。
(Step S400-19)
The main CPU 300a performs a process of updating the winning symbol random number. Specifically, the random number counter is updated by adding 1, and if the result of the addition exceeds the maximum value of the random number range, the random number counter is reset to 0, and if the random number counter has completed one cycle, the random number is updated from the value of the initial value update random number for the winning symbol random number at that time.

なお、詳しい説明は省略するが、同時回し参考例では、大当たり決定乱数および当たり決定乱数は、主制御基板300に内蔵されたハードウェア乱数生成部によって更新されるハードウェア乱数を用いている。ハードウェア乱数生成部は、大当たり決定乱数および当たり決定乱数を、いずれも一定の規則にしたがって更新し、乱数列が一巡するごとに自動的に乱数列を変更するとともに、システムリセット毎にスタート値を変更している。 Although a detailed explanation will be omitted, in the simultaneous spin reference example, the jackpot determination random number and the win determination random number use hardware random numbers updated by a hardware random number generation unit built into the main control board 300. The hardware random number generation unit updates both the jackpot determination random number and the win determination random number according to certain rules, automatically changing the random number sequence each time the random number sequence goes through one cycle, and changing the start value each time the system is reset.

(ステップS500)
メインCPU300aは、第1固定始動口検出スイッチ120As、第1可変始動口検出スイッチ120Bs、第2始動口検出スイッチ122s、ゲート検出スイッチ124s、普図作動口検出スイッチ125s、第1大入賞口検出スイッチ126s、第2大入賞口検出スイッチ128sから信号の入力があったか否か判定するスイッチ管理処理を実行する。なお、このスイッチ管理処理の詳細については後述する。
(Step S500)
The main CPU 300a executes a switch management process to determine whether or not a signal has been input from the first fixed start hole detection switch 120As, the first variable start hole detection switch 120Bs, the second start hole detection switch 122s, the gate detection switch 124s, the normal operation hole detection switch 125s, the first large prize hole detection switch 126s, and the second large prize hole detection switch 128s. Details of this switch management process will be described later.

(ステップS600)
メインCPU300aは、特別遊技のうちの特2保留に基づく特別図柄の変動表示を進行制御するための特別遊技管理処理を実行する。なお、この特別遊技管理処理の詳細については後述する。
(Step S600)
The main CPU 300a executes a special game management process for controlling the progress of the variable display of the special symbols based on the special 2 reservation in the special game. The details of this special game management process will be described later.

(ステップS600)
メインCPU300aは、特別遊技のうちの特1保留に基づく特別図柄の変動表示を進行制御するための特別遊技管理処理を実行する。なお、ここでは、特2保留に基づく特別図柄の変動表示を進行制御するための特別遊技管理処理と同一のプログラム(モジュール)が読み出されて、特1保留に基づく特別図柄の変動表示を進行制御するための特別遊技管理処理が実行されることになる。
(Step S600)
The main CPU 300a executes a special game management process for controlling the progress of the variable display of the special symbol based on the special 1 reservation in the special game. Here, the same program (module) as the special game management process for controlling the progress of the variable display of the special symbol based on the special 2 reservation is read out, and the special game management process for controlling the progress of the variable display of the special symbol based on the special 1 reservation is executed.

(ステップS700)
メインCPU300aは、特別遊技における大役遊技および小当たり遊技を進行制御するための特別電動役物遊技管理処理を実行する。なお、この特別電動役物遊技管理処理の詳細については後述する。
(Step S700)
The main CPU 300a executes a special electric accessory game management process for controlling the progress of the big prize game and the small prize game in the special game. The details of this special electric accessory game management process will be described later.

(ステップS800)
メインCPU300aは、上記の普通遊技を進行制御するための普通遊技管理処理を実行する。なお、この普通遊技管理処理の詳細については後述する。
(Step S800)
The main CPU 300a executes a normal game management process for controlling the progress of the normal game. The details of this normal game management process will be described later.

(ステップS400-21)
メインCPU300aは、各種エラーの判定およびエラー判定結果に応じた設定を行うためのエラー管理処理を実行する。
(Step S400-21)
The main CPU 300a executes an error management process for determining various errors and making settings according to the error determination results.

(ステップS400-23)
メインCPU300aは、一般入賞口検出スイッチ118s、第1始動口検出スイッチ120s、第2始動口検出スイッチ122s、第1大入賞口検出スイッチ126s、第2大入賞口検出スイッチ128sのチェックを行い、該当する賞球制御用のカウンタ等を加算するための入賞口スイッチ処理を実行する。
(Step S400-23)
The main CPU 300a checks the general prize hole detection switch 118s, the first start hole detection switch 120s, the second start hole detection switch 122s, the first large prize hole detection switch 126s, and the second large prize hole detection switch 128s, and executes prize hole switch processing to increment the corresponding counters for prize ball control, etc.

(ステップS400-25)
メインCPU300aは、上記ステップS400-23でセットされた賞球制御用のカウンタのカウンタ値等に基づく払出コマンドの作成および送信を行うための払出制御管理処理を実行する。
(Step S400-25)
The main CPU 300a executes a payout control management process to create and transmit a payout command based on the counter value of the counter for controlling the winning balls set in the above step S400-23.

(ステップS400-27)
メインCPU300aは、遊技球の発射位置、すなわち、第1遊技領域116aおよび第2遊技領域116bのどちらに遊技球を発射させるかを指示する発射位置指定コマンドを副制御基板330に送信するための発射位置指定管理処理を実行する。
(Step S400-27)
The main CPU 300a executes a launch position designation management process for transmitting a launch position designation command to the sub-control board 330, which designates the launch position of the game ball, i.e., whether the game ball is to be launched into the first game area 116a or the second game area 116b.

(ステップS400-29)
メインCPU300aは、遊技情報出力端子板312から外部へ出力する外部情報用の出力データをセットするための外部情報管理処理を実行する。
(Step S400-29)
The main CPU 300a executes an external information management process for setting output data for external information to be output from the game information output terminal board 312 to the outside.

(ステップS400-31)
メインCPU300aは、第1特別図柄表示器160、第2特別図柄表示器162、第1特別図柄保留表示器164、第2特別図柄保留表示器166、普通図柄表示器168、普通図柄保留表示器170、右打ち報知表示器172等の各種表示器(LED)を点灯制御するための表示データを、各コモンに対応した出力バッファにセットするLED表示設定処理を実行する。
(Step S400-31)
The main CPU 300a executes an LED display setting process which sets display data for controlling the lighting of various indicators (LEDs), such as the first special pattern display 160, the second special pattern display 162, the first special pattern reserved indicator 164, the second special pattern reserved indicator 166, the normal pattern display 168, the normal pattern reserved indicator 170, and the right hit notification indicator 172, in an output buffer corresponding to each common.

(ステップS400-33)
メインCPU300aは、普通電動役物ソレノイド120c、第1大入賞口ソレノイド126c、第2大入賞口ソレノイド128cのソレノイド出力イメージを合成し、出力ポートバッファに格納するためのソレノイド出力イメージ合成処理を実行する。
(Step S400-33)
The main CPU 300a executes a solenoid output image synthesis process to synthesize the solenoid output images of the normal electric role solenoid 120c, the first large prize opening solenoid 126c, and the second large prize opening solenoid 128c, and store them in an output port buffer.

(ステップS400-35)
メインCPU300aは、各出力ポートバッファに格納されたコモン出力バッファの値を出力ポートに出力するためのポート出力処理を実行する。
(Step S400-35)
The main CPU 300a executes a port output process for outputting the values of the common output buffers stored in the respective output port buffers to the output ports.

(ステップS400-37)
メインCPU300aは、割込みを禁止するための処理を行う。
(Step S400-37)
The main CPU 300a performs processing to disable interrupts.

(ステップS400-39)
メインCPU300aは、メインRAM300cの使用外領域を用いて、性能表示モニタ184に表示するベース比率を算出するための処理を行い、算出したベース比率を性能表示モニタ184に表示するためのコモンデータをコモン出力バッファにセットする性能表示モニタ制御処理を実行する。なお、性能表示モニタ制御処理においては、所定期間ごとにベース比率が算出される。ここで、性能表示モニタ184には、現在の期間のベース比率と、それ以前の期間のベース比率とが所定時間ごとに切り替え表示されてもよい。また、所定の操作に応じて、性能表示モニタ184に表示されるベース比率が切り替わってもよい。
(Step S400-39)
The main CPU 300a uses the unused area of the main RAM 300c to perform processing for calculating a base ratio to be displayed on the performance display monitor 184, and executes a performance display monitor control processing for setting common data for displaying the calculated base ratio on the performance display monitor 184 in a common output buffer. In the performance display monitor control processing, the base ratio is calculated for each predetermined period. Here, the performance display monitor 184 may switch between displaying the base ratio for the current period and the base ratio for the previous period at predetermined time intervals. Also, the base ratio displayed on the performance display monitor 184 may be switched in response to a predetermined operation.

(ステップS400-41)
メインCPU300aは、レジスタを復帰してタイマ割込み処理を終了する。
(Step S400-41)
The main CPU 300a restores the registers and ends the timer interrupt process.

図27は、同時回し参考例に係る設定関連処理(S450)を説明するフローチャートである。 Figure 27 is a flowchart explaining the setting-related process (S450) for the simultaneous rotation reference example.

(ステップS450-1)
メインCPU300aは、遊技機状態フラグのフラグ値が01H(設定変更状態)であるかを判定する。その結果、01Hであると判定した場合にはステップS450-3に処理を移し、01Hではないと判定した場合にはステップS450-15に処理を移す。
(Step S450-1)
The main CPU 300a judges whether the flag value of the gaming machine state flag is 01H (setting change state). If it is judged to be 01H, the process proceeds to step S450-3, and if it is judged not to be 01H, the process proceeds to step S450-15.

(ステップS450-3)
メインCPU300aは、設定値バッファに記憶されている登録設定値を所定の処理領域にロードする。
(Step S450-3)
The main CPU 300a loads the registered setting values stored in the setting value buffer into a predetermined processing area.

(ステップS450-5)
メインCPU300aは、RAMクリアスイッチ182sが押下されたか(RAMクリア操作信号が入力されているか)を判定する。その結果、RAMクリアスイッチ182sが押下されていると判定した場合にはステップS450-7に処理を移し、RAMクリアスイッチ182sが押下されていないと判定した場合にはステップS450-9に処理を移す。
(Step S450-5)
The main CPU 300a judges whether the RAM clear switch 182s has been pressed (whether a RAM clear operation signal has been input). If it is judged that the RAM clear switch 182s has been pressed, the process proceeds to step S450-7, and if it is judged that the RAM clear switch 182s has not been pressed, the process proceeds to step S450-9.

(ステップS450-7)
メインCPU300aは、処理領域の設定値に1を加算する。
(Step S450-7)
The main CPU 300a adds 1 to the setting value of the processing area.

(ステップS450-9)
メインCPU300aは、処理領域の設定値が1~6の範囲であるかを判定する。その結果、設定値が1~6の範囲であると判定した場合にはステップS450-13に処理を移し、設定値が1~6の範囲ではないと判定した場合にはステップS450-11に処理を移す。
(Step S450-9)
The main CPU 300a judges whether the setting value of the processing area is in the range of 1 to 6. As a result, if it is judged that the setting value is in the range of 1 to 6, the process proceeds to step S450-13, and if it is judged that the setting value is not in the range of 1 to 6, the process proceeds to step S450-11.

(ステップS450-11)
メインCPU300aは、処理領域の設定値を1にセットする。
(Step S450-11)
The main CPU 300a sets the setting value of the processing area to 1.

(ステップS450-13)
メインCPU300aは、処理領域の設定値を設定値バッファにセットする。
(Step S450-13)
The main CPU 300a sets the setting value of the processing area in the setting value buffer.

(ステップS450-15)
メインCPU300aは、設定変更スイッチ180sがオンしているかを判定する。その結果、設定変更スイッチ180sがオンしていると判定した場合には当該設定関連処理を終了し、設定変更スイッチ180sはオンしていないと判定した場合にはステップS450-17に処理を移す。
(Step S450-15)
The main CPU 300a judges whether the setting change switch 180s is on. If it is judged that the setting change switch 180s is on, the setting-related process is terminated, and if it is judged that the setting change switch 180s is not on, the process proceeds to step S450-17.

(ステップS450-17)
メインCPU300aは、設定関連処理の終了を示す設定関連終了指定コマンドを送信バッファにセットする。
(Step S450-17)
The main CPU 300a sets a setting-related end designation command, which indicates the end of the setting-related processing, in the transmission buffer.

(ステップS110)
メインCPU300aは、図24のサブコマンド群セット処理を実行する。すなわち、設定関連処理が実行された場合、その終了時に、機種コマンド、設定値指定コマンド、特図1保留指定コマンド、特図2保留指定コマンド、回数コマンド、変動パターン選択状態指定コマンド、特図フェーズ指定コマンド、客待ち指定コマンドが副制御基板330に送信されることとなる。
(Step S110)
The main CPU 300a executes the sub-command group set process of Fig. 24. That is, when the setting related process is executed, at the end of the process, the model command, the setting value designation command, the special chart 1 reservation designation command, the special chart 2 reservation designation command, the number of times command, the variation pattern selection state designation command, the special chart phase designation command, and the customer waiting designation command are transmitted to the sub-control board 330.

(ステップS450-19)
メインCPU300aは、遊技機状態フラグに00H(遊技可能状態)をセットし、当該設定関連処理を終了する。
(Step S450-19)
The main CPU 300a sets the gaming machine state flag to 00H (playable state), and ends the setting-related processing.

以上のように、同時回し参考例によれば、中枠104が開放され、設定変更スイッチ180sがオンされ、RAMクリアボタンが押下操作された状態で、正常に電源投入がなされると、CPU初期化処理(図22)において、遊技機状態フラグに01H(設定変更状態)がセットされる。その後、タイマ割込み処理が実行されるが、遊技機状態フラグに01H(設定変更状態)がセットされているため、遊技の進行に係る全ての処理(図26のステップS400-15~ステップS400-27)が停止され、設定関連処理が実行される。 As described above, according to the simultaneous rotation reference example, when the power is turned on normally with the middle frame 104 open, the setting change switch 180s on, and the RAM clear button pressed, the gaming machine status flag is set to 01H (setting change state) in the CPU initialization process (Figure 22). After that, the timer interrupt process is executed, but because the gaming machine status flag is set to 01H (setting change state), all processes related to the progress of the game (steps S400-15 to S400-27 in Figure 26) are stopped, and setting-related processes are executed.

設定関連処理は、設定変更スイッチ180sがオンしている間、繰り返し実行され、この設定関連処理中は、RAMクリアボタンの押下操作が、登録設定値の設定変更操作として受け付けられる。すなわち、設定変更操作を受け付ける設定変更処理(S450-1~S450-13)中は、設定変更操作に応じて、設定値バッファに記憶する登録設定値が、複数段階設けられた設定値のいずれかに切り替えられる。 The setting-related process is executed repeatedly while the setting change switch 180s is on, and during this setting-related process, pressing the RAM clear button is accepted as a setting change operation for the registered setting value. In other words, during the setting change process (S450-1 to S450-13) that accepts setting change operations, the registered setting value stored in the setting value buffer is switched to one of multiple setting values in response to the setting change operation.

そして、遊技機状態フラグに01H(設定変更状態)がセットされている状態で、設定変更スイッチ180sがオフに切り替わると、設定変更処理が終了となり、遊技機状態フラグに00H(遊技可能状態)がセットされる。これにより、次のタイマ割込み処理から、遊技の進行に係る処理が実行可能となる。 When the setting change switch 180s is switched off while the gaming machine status flag is set to 01H (setting change state), the setting change process ends and the gaming machine status flag is set to 00H (playable state). This makes it possible to execute processes related to the progress of the game, starting with the next timer interrupt process.

ここで、同時回し参考例の設定関連処理では、RAMクリアボタンの押下操作、すなわち、登録設定値の設定変更操作の受け付け終了後に、サブコマンド群セット処理において、登録設定値に対応する設定値指定コマンドが副制御基板330に送信される。一方で、設定変更操作の受け付け中は、設定値指定コマンドが副制御基板330に送信されることはない。このように、設定変更操作の受け付け中は、設定値指定コマンドを送信せずに、設定変更操作の受け付けが終了し、遊技の進行が可能な状態に移行する場合に、設定値指定コマンドを送信することで、登録設定値が不正に取得されるリスクを低減することができる。 Here, in the setting-related processing of the simultaneous rotation reference example, after the RAM clear button is pressed, i.e., after the acceptance of the setting change operation of the registered setting value has ended, a setting value designation command corresponding to the registered setting value is sent to the sub-control board 330 in the sub-command group set processing. On the other hand, while the setting change operation is being accepted, the setting value designation command is not sent to the sub-control board 330. In this way, while the setting change operation is being accepted, the setting value designation command is not sent, and when the acceptance of the setting change operation has ended and the game transitions to a state in which it is possible to proceed, the setting value designation command is sent, thereby reducing the risk of the registered setting value being obtained illegally.

また、同時回し参考例では、01H(設定変更状態)を少なくとも含む複数のフラグ値が切り替えられる。そして、遊技機状態フラグに01H(設定変更状態)がセットされている場合に設定関連処理が実行可能となり、かつ、遊技の進行が停止される。このように、遊技の進行中に設定関連処理が実行されることがないため、遊技の進行中に設定値指定コマンドが送信されることもなく、登録設定値が不正に取得されるリスクが低減される。 In addition, in the simultaneous rotation reference example, multiple flag values including at least 01H (setting change state) are switched. Then, when the gaming machine state flag is set to 01H (setting change state), setting-related processing can be executed, and the progress of the game is stopped. In this way, since setting-related processing is not executed while the game is in progress, setting value designation commands are not sent while the game is in progress, and the risk of registered setting values being obtained illegally is reduced.

次に、上記したタイマ割込み処理のうち、ステップS500のスイッチ管理処理、ステップS600の特別遊技管理処理、ステップS700の特別電動役物遊技管理処理、ステップS800の普通遊技管理処理について、詳細に説明する。 Next, among the timer interrupt processes described above, the switch management process in step S500, the special game management process in step S600, the special electric role game game management process in step S700, and the regular game management process in step S800 will be described in detail.

図28は、同時回し参考例に係る主制御基板300におけるスイッチ管理処理(ステップS500)を説明するフローチャートである。 Figure 28 is a flowchart explaining the switch management process (step S500) in the main control board 300 in the simultaneous rotation reference example.

(ステップS500-1)
メインCPU300aは、ゲート検出スイッチオン検出時であるか、すなわち、ゲート124を遊技球が通過してゲート検出スイッチ124sからの検出信号がオンされたかを判定する。その結果、ゲート検出スイッチオン検出時であると判定した場合にはステップS510に処理を移し、ゲート検出スイッチオン検出時ではないと判定した場合にはステップS500-7に処理を移す。
(Step S500-1)
The main CPU 300a judges whether the gate detection switch is ON, that is, whether the game ball has passed through the gate 124 and the detection signal from the gate detection switch 124s has been turned ON. If it is judged that the gate detection switch is ON, the process proceeds to step S510, and if it is judged that the gate detection switch is not ON, the process proceeds to step S500-7.

(ステップS510)
メインCPU300aは、ゲート124への遊技球の通過に基づいてゲート通過処理を実行する。なお、このゲート通過処理の詳細については後述する。
(Step S510)
The main CPU 300a executes a gate passing process based on the passage of the gaming ball through the gate 124. The gate passing process will be described in detail later.

(ステップS500-3)
メインCPU300aは、普図作動口検出スイッチオン検出時であるか、すなわち、普図作動口125に遊技球が入球して普図作動口検出スイッチ125sからの検出信号がオンされたかを判定する。その結果、普図作動口検出スイッチオン検出時であると判定した場合にはステップS510に処理を移し、普図作動口検出スイッチオン検出時ではないと判定した場合にはステップS500-5に処理を移す。
(Step S500-3)
The main CPU 300a judges whether the normal operation port detection switch is ON, that is, whether a game ball has entered the normal operation port 125 and the detection signal from the normal operation port detection switch 125s has been turned ON. If it is judged that the normal operation port detection switch is ON, the process proceeds to step S510, and if it is judged that the normal operation port detection switch is not ON, the process proceeds to step S500-5.

(ステップS510)
メインCPU300aは、普図作動口125への遊技球の入球に基づいてゲート通過処理を実行する。
(Step S510)
The main CPU 300a executes gate passing processing based on the entry of a game ball into the normal operation port 125.

(ステップS500-5)
メインCPU300aは、第1固定始動口検出スイッチオン検出時であるか、すなわち、第1固定始動口120Aに遊技球が入球して第1固定始動口検出スイッチ120Asから検出信号が入力されたかを判定する。その結果、第1固定始動口検出スイッチオン検出時であると判定した場合にはステップS520に処理を移し、第1固定始動口検出スイッチオン検出時ではないと判定した場合にはステップS500-7に処理を移す。
(Step S500-5)
The main CPU 300a judges whether the first fixed start hole detection switch is ON, that is, whether a game ball has entered the first fixed start hole 120A and a detection signal has been input from the first fixed start hole detection switch 120As. If it is judged that the first fixed start hole detection switch is ON, the process proceeds to step S520, and if it is judged that the first fixed start hole detection switch is not ON, the process proceeds to step S500-7.

(ステップS520)
メインCPU300aは、第1固定始動口120Aへの遊技球の入球に基づいて第1始動口通過処理を実行する。なお、この第1始動口通過処理の詳細については後述する。
(Step S520)
The main CPU 300a executes a first start hole passing process based on the entry of the game ball into the first fixed start hole 120A. The first start hole passing process will be described in detail later.

(ステップS500-7)
メインCPU300aは、第1可変始動口検出スイッチオン検出時であるか、すなわち、第1可変始動口120Bに遊技球が入球して第1可変始動口検出スイッチ120Bsから検出信号が入力されたかを判定する。その結果、第1可変始動口検出スイッチオン検出時であると判定した場合にはステップS520に処理を移し、第1可変始動口検出スイッチオン検出時ではないと判定した場合にはステップS500-11に処理を移す。
(Step S500-7)
The main CPU 300a judges whether the first variable start hole detection switch is ON, that is, whether a game ball has entered the first variable start hole 120B and a detection signal has been input from the first variable start hole detection switch 120Bs. If it is determined that the first variable start hole detection switch is ON, the process proceeds to step S520, and if it is determined that the first variable start hole detection switch is not ON, the process proceeds to step S500-11.

(ステップS520)
メインCPU300aは、第1可変始動口120Bへの遊技球の入球に基づいて第1始動口通過処理を実行する。なお、この第1始動口通過処理の詳細については後述する。
(Step S520)
The main CPU 300a executes a first start hole passing process based on the entry of the gaming ball into the first variable start hole 120B. The first start hole passing process will be described in detail later.

(ステップS500-9)
メインCPU300aは、第1可変始動口120Bへの遊技球の入球が適正になされたものであるかを判定し、遊技球の入球が適正になされていないと判定した場合には、第1可変始動口120Bへの不正な遊技球の入球を示す普電不正入賞エラー発生指定コマンドを副制御基板330に送信するための普通電動役物入賞時確認処理を実行する。
(Step S500-9)
The main CPU 300a determines whether the game ball has entered the first variable start opening 120B properly, and if it determines that the game ball has not entered properly, executes a normal electric device winning confirmation process to send a normal electric illegal winning error occurrence designation command to the sub-control board 330, indicating that the game ball has entered the first variable start opening 120B illegally.

(ステップS500-11)
メインCPU300aは、第2始動口検出スイッチオン検出時であるか、すなわち、第2始動口122に遊技球が入球して第2始動口検出スイッチ122sから検出信号が入力されたかを判定する。その結果、第2始動口検出スイッチオン検出時であると判定した場合にはステップS530に処理を移し、第2始動口検出スイッチオン検出時ではないと判定した場合にはステップS500-13に処理を移す。
(Step S500-11)
The main CPU 300a judges whether the second start hole detection switch is ON, that is, whether a game ball has entered the second start hole 122 and a detection signal has been input from the second start hole detection switch 122s. If it is determined that the second start hole detection switch is ON, the process proceeds to step S530, and if it is determined that the second start hole detection switch is not ON, the process proceeds to step S500-13.

(ステップS530)
メインCPU300aは、第2始動口122への遊技球の入球に基づいて第2始動口通過処理を実行する。なお、この第2始動口通過処理の詳細については後述する。
(Step S530)
The main CPU 300a executes a second start hole passing process based on the entry of the gaming ball into the second start hole 122. The second start hole passing process will be described in detail later.

(ステップS500-13)
メインCPU300aは、大入賞口検出スイッチオン検出時であるか、すなわち、第1大入賞口126または第2大入賞口128に遊技球が入球して第1大入賞口検出スイッチ126sまたは第2大入賞口検出スイッチ128sから検出信号が入力されたかを判定する。その結果、大入賞口検出スイッチオン検出時であると判定した場合にはステップS540に処理を移し、大入賞口検出スイッチオン検出時ではないと判定した場合には当該スイッチ管理処理を終了する。
(Step S500-13)
The main CPU 300a judges whether the time has come when the large prize opening detection switch is detected as being on, that is, whether a game ball has entered the first large prize opening 126 or the second large prize opening 128 and a detection signal has been input from the first large prize opening detection switch 126s or the second large prize opening detection switch 128s. If it is determined that the time has come when the large prize opening detection switch is detected as being on, the process proceeds to step S540, and if it is determined that the time has not come when the large prize opening detection switch is detected as being on, the switch management process is terminated.

(ステップS540)
メインCPU300aは、第1大入賞口126または第2大入賞口128への遊技球の入球が適正になされたものであるかを判定し、遊技球の入球が適正になされたと判定した場合には、第1大入賞口126または第2大入賞口128への遊技球の入球を示す大入賞口入球コマンドを副制御基板330に送信するための大入賞口通過処理を実行する。なお、この大入賞口通過処理の詳細については後述する。
(Step S540)
The main CPU 300a judges whether the game ball has entered the first large prize opening 126 or the second large prize opening 128 properly, and if it judges that the game ball has entered properly, it executes a large prize opening passing process for transmitting a large prize opening entry command, which indicates that the game ball has entered the first large prize opening 126 or the second large prize opening 128, to the sub-control board 330. The details of this large prize opening passing process will be described later.

図29は、同時回し参考例に係る主制御基板300におけるゲート通過処理(ステップS510)を説明するフローチャートである。 Figure 29 is a flowchart explaining the gate passage process (step S510) in the main control board 300 in the simultaneous rotation reference example.

(ステップS510-1)
メインCPU300aは、ハードウェア乱数生成部によって更新された当たり決定乱数をロードする。
(Step S510-1)
The main CPU 300a loads the winning determination random number updated by the hardware random number generator.

(ステップS510-3)
メインCPU300aは、普通図柄保留球数カウンタのカウンタ値が最大値以上であるか、つまり、普通図柄保留球数カウンタのカウンタ値が4以上であるかを判定する。その結果、普通図柄保留球数カウンタのカウンタ値が最大値以上であると判定した場合には当該ゲート通過処理を終了し、普通図柄保留球数カウンタは最大値以上ではないと判定した場合にはステップS510-5に処理を移す。
(Step S510-3)
The main CPU 300a judges whether the counter value of the normal pattern reserved ball counter is equal to or greater than the maximum value, that is, whether the counter value of the normal pattern reserved ball counter is equal to or greater than 4. If it is judged that the counter value of the normal pattern reserved ball counter is equal to or greater than the maximum value, the gate passing process is terminated, and if it is judged that the normal pattern reserved ball counter is not equal to or greater than the maximum value, the process proceeds to step S510-5.

(ステップS510-5)
メインCPU300aは、普通図柄保留球数カウンタのカウンタ値を、現在のカウンタ値に「1」加算した値に更新する。
(Step S510-5)
The main CPU 300a updates the counter value of the normal symbol reserved ball count counter to a value obtained by adding "1" to the current counter value.

(ステップS510-7)
メインCPU300aは、普図保留記憶領域の4つの記憶部のうち、取得した当たり決定乱数をセーブする対象となる対象記憶部を算定する。
(Step S510-7)
The main CPU 300a determines which of the four memory sections in the general reserve memory area is to be the target memory section in which to save the acquired winning determination random number.

(ステップS510-9)
メインCPU300aは、上記ステップS510-1で取得した当たり決定乱数を、上記ステップS510-7で算定した対象記憶部にセーブする。
(Step S510-9)
The main CPU 300a saves the winning determination random number obtained in the above step S510-1 in the target memory calculated in the above step S510-7.

(ステップS510-11)
メインCPU300aは、普図保留記憶領域に記憶されている普図保留数を示す普図保留指定コマンドを送信バッファにセットし、当該ゲート通過処理を終了する。
(Step S510-11)
The main CPU 300a sets a regular map reservation designation command indicating the number of regular map reservations stored in the regular map reservation memory area in the transmission buffer, and terminates the gate passing process.

図30は、同時回し参考例に係る主制御基板300における第1始動口通過処理(ステップS520)を説明するフローチャートである。 Figure 30 is a flow chart explaining the first starting port passing process (step S520) in the main control board 300 in the simultaneous rotation reference example.

(ステップS520-1)
メインCPU300aは、特別図柄識別値として「00H」をセットする。なお、特別図柄識別値は、保留種別として特1保留および特2保留のいずれであるかを識別するためのもので、特別図柄識別値(00H)は特1保留を示し、特別図柄識別値(01H)は特2保留を示す。
(Step S520-1)
The main CPU 300a sets "00H" as the special symbol identification value. The special symbol identification value is used to identify whether the reserved type is special 1 reserved or special 2 reserved, and the special symbol identification value (00H) indicates special 1 reserved, and the special symbol identification value (01H) indicates special 2 reserved.

(ステップS520-3)
メインCPU300aは、特別図柄1保留球数カウンタのアドレスをセットする。
(Step S520-3)
The main CPU 300a sets the address of the reserved ball count counter for special pattern 1.

(ステップS535)
メインCPU300aは、特別図柄乱数取得処理を実行し、当該第1始動口通過処理を終了する。なお、この特別図柄乱数取得処理は、第2始動口通過処理(ステップS530)と共通のモジュールを利用して実行される。したがって、特別図柄乱数取得処理の詳細は、第2始動口通過処理の説明後に説明する。
(Step S535)
The main CPU 300a executes the special symbol random number acquisition process and ends the first start hole passing process. This special symbol random number acquisition process is executed using a module common to the second start hole passing process (step S530). Therefore, the details of the special symbol random number acquisition process will be explained after the explanation of the second start hole passing process.

図31は、同時回し参考例に係る主制御基板300における第2始動口通過処理(ステップS530)を説明するフローチャートである。 Figure 31 is a flow chart explaining the second starting port passing process (step S530) in the main control board 300 in the simultaneous rotation reference example.

(ステップS530-1)
メインCPU300aは、特別図柄識別値として「01H」をセットする。
(Step S530-1)
The main CPU 300a sets "01H" as the special symbol identification value.

(ステップS530-3)
メインCPU300aは、特別図柄2保留球数カウンタのアドレスをセットする。
(Step S530-3)
The main CPU 300a sets the address of the special pattern 2 reserved ball count counter.

(ステップS535)
メインCPU300aは、後述する特別図柄乱数取得処理を実行し、当該第2始動口通過処理を終了する。
(Step S535)
The main CPU 300a executes the special pattern random number acquisition process described later, and ends the second starting port passing process.

図32は、同時回し参考例に係る主制御基板300における特別図柄乱数取得処理(ステップS535)を説明するフローチャートである。この特別図柄乱数取得処理は、上記した第1始動口通過処理(ステップS520)および第2始動口通過処理(ステップS530)において、共通のモジュールを用いて実行される。 Figure 32 is a flow chart explaining the special symbol random number acquisition process (step S535) in the main control board 300 relating to the simultaneous rotation reference example. This special symbol random number acquisition process is executed using a common module in the first start hole passing process (step S520) and the second start hole passing process (step S530) described above.

(ステップS535-1)
メインCPU300aは、上記ステップS520-1またはステップS530-1でセットした特別図柄識別値をロードする。
(Step S535-1)
The main CPU 300a loads the special symbol identification value set in step S520-1 or step S530-1.

(ステップS535-3)
メインCPU300aは、対象特別図柄保留球数をロードする。ここでは、上記ステップS535-1でロードした特別図柄識別値が「00H」であれば、特別図柄1保留球数カウンタのカウンタ値、すなわち、特1保留数をロードする。また、上記ステップS535-1でロードした特別図柄識別値が「01H」であれば、特別図柄2保留球数カウンタのカウンタ値、すなわち、特2保留数をロードする。
(Step S535-3)
The main CPU 300a loads the number of reserved balls for the target special symbol. Here, if the special symbol identification value loaded in the above step S535-1 is "00H", the counter value of the reserved ball counter for the special symbol 1, i.e., the reserved number for special 1, is loaded. Also, if the special symbol identification value loaded in the above step S535-1 is "01H", the counter value of the reserved ball counter for the special symbol 2, i.e., the reserved number for special 2, is loaded.

(ステップS535-5)
メインCPU300aは、ハードウェア乱数生成部によって更新された大当たり決定乱数をロードする。
(Step S535-5)
The main CPU 300a loads the jackpot determination random number updated by the hardware random number generating unit.

(ステップS535-7)
メインCPU300aは、上記ステップS535-3でロードした対象特別図柄保留球数が上限値以上であるかを判定する。その結果、上限値以上であると判定した場合には、当該特別図柄乱数取得処理を終了し、上限値以上ではないと判定した場合には、ステップS535-9に処理を移す。
(Step S535-7)
The main CPU 300a judges whether the number of reserved balls for the target special symbol loaded in step S535-3 is equal to or greater than the upper limit. If it is judged to be equal to or greater than the upper limit, the main CPU 300a ends the special symbol random number acquisition process. If it is judged to be equal to or greater than the upper limit, the process proceeds to step S535-9.

(ステップS535-9)
メインCPU300aは、対象特別図柄保留球数カウンタのカウンタ値を、現在のカウンタ値に「1」加算した値に更新する。
(Step S535-9)
The main CPU 300a updates the counter value of the target special pattern reserved ball count counter to a value obtained by adding "1" to the current counter value.

(ステップS535-11)
メインCPU300aは、特図保留記憶領域の記憶部のうち、取得した大当たり決定乱数をセーブする対象となる対象記憶部を算定する。
(Step S535-11)
The main CPU 300a calculates the target memory section among the memory sections of the special chart reserved memory area into which the acquired jackpot determination random number is to be saved.

(ステップS535-13)
メインCPU300aは、上記ステップS535-5でロードした大当たり決定乱数、上記ステップS400-19で更新された当たり図柄乱数、上記ステップS100-69で更新された変動パターン乱数を取得し、上記ステップS535-11で算定した対象記憶部に格納する。
(Step S535-13)
The main CPU 300a obtains the jackpot determination random number loaded in step S535-5, the winning symbol random number updated in step S400-19, and the variation pattern random number updated in step S100-69, and stores them in the target memory section calculated in step S535-11.

(ステップS535-15)
メインCPU300aは、特別図柄1保留球数カウンタおよび特別図柄2保留球数カウンタのカウンタ値をロードする。
(Step S535-15)
The main CPU 300a loads the counter values of the special pattern 1 reserved ball count counter and the special pattern 2 reserved ball count counter.

(ステップS535-17)
メインCPU300aは、上記ステップS535-15でロードしたカウンタ値に基づいて、特図保留指定コマンドを送信バッファにセットする。ここでは、特別図柄1保留球数カウンタのカウンタ値(特1保留数)に基づいて特図1保留指定コマンドをセットし、特別図柄2保留球数カウンタのカウンタ値(特2保留数)に基づいて特図2保留指定コマンドをセットする。これにより、特1保留または特2保留が記憶されるたびに、特1保留数および特2保留数が副制御基板330に伝達されることとなる。
(Step S535-17)
The main CPU 300a sets the special reserved command in the transmission buffer based on the counter value loaded in step S535-15. Here, the special reserved command is set based on the counter value (special reserved number of special 1) of the special reserved ball number counter, and the special reserved command is set based on the counter value (special reserved number of special 2) of the special reserved ball number counter. As a result, the special reserved number of special 1 and the special reserved number of special 2 are transmitted to the sub-control board 330 every time the special reserved number of special 1 or special reserved number of special 2 is stored.

(ステップS536)
メインCPU300aは、取得時演出判定処理を行い、当該特別図柄乱数取得処理を終了する。この取得時演出判定処理では、大役抽選の結果や、変動パターン番号等が仮判定され、仮判定の結果に応じた先読み指定コマンドを副制御基板330に送信する。この取得時演出判定処理について、図33を用いて説明する。
(Step S536)
The main CPU 300a performs the acquisition time performance determination process and ends the special symbol random number acquisition process. In this acquisition time performance determination process, the result of the big role lottery and the variable pattern number are provisionally determined, and a pre-reading designation command according to the provisional determination result is transmitted to the sub-control board 330. This acquisition time performance determination process will be described with reference to FIG.

図33は、同時回し参考例に係る主制御基板300における取得時演出判定処理(ステップS536)を説明するフローチャートである。 Figure 33 is a flowchart explaining the performance determination process (step S536) at the time of acquisition in the main control board 300 in the simultaneous rotation reference example.

(ステップS536-1)
メインCPU300aは、設定中の設定値に基づいて、対応する大当たり決定乱数判定テーブルを選択する。具体的には、現在の遊技状態、および、設定中の設定値に基づいて、対応する大当たり決定乱数判定テーブルを選択する。そして、選択したテーブルと、上記ステップS535-13で対象記憶部に記憶した大当たり決定乱数とに基づいて、大当たり、小当たり、ハズレのいずれかを仮判定する特別図柄当たり仮判定処理を行う。
(Step S536-1)
The main CPU 300a selects a corresponding jackpot determination random number judgment table based on the currently set value. Specifically, the main CPU 300a selects a corresponding jackpot determination random number judgment table based on the current game state and the currently set value. Then, the main CPU 300a performs a provisional special symbol win judgment process to provisionally judge whether the winning combination is a jackpot, a small win, or a miss, based on the selected table and the jackpot determination random number stored in the target memory unit in step S535-13.

(ステップS536-3)
メインCPU300aは、特別図柄を仮決定するための特別図柄図柄仮判定処理を実行する。ここでは、上記ステップS536-1の仮大役抽選の結果(特別図柄当たり仮判定処理によって導出された結果)が大当たりまたは小当たりであった場合には、上記ステップS535-13で対象記憶部に記憶した当たり図柄乱数、当選種別(大当たりであるか小当たりであるか)、保留種別をロードし、対応する当たり図柄乱数判定テーブルを選択して特別図柄判定データを抽出し、抽出した特別図柄判定データ(大当たり図柄または小当たり図柄の種別)をセーブする。また、上記ステップS536-1の仮大役抽選の結果がハズレであった場合には、所定のハズレ用の特別図柄判定データ(ハズレ図柄の種別)をセーブする。
(Step S536-3)
The main CPU 300a executes a special symbol provisional determination process for provisionally determining a special symbol. Here, if the result of the provisional big role lottery in the above step S536-1 (the result derived by the special symbol provisional win determination process) is a big win or a small win, the winning symbol random number, the winning type (whether it is a big win or a small win), and the reserved type stored in the target memory in the above step S535-13 are loaded, the corresponding winning symbol random number determination table is selected to extract the special symbol determination data, and the extracted special symbol determination data (type of big win symbol or small win symbol) is saved. Also, if the result of the provisional big role lottery in the above step S536-1 is a loss, a predetermined special symbol determination data for a loss (type of loss symbol) is saved.

(ステップS536-5)
メインCPU300aは、ステップS536-3でセーブした特別図柄判定データに対応する先読み図柄種別指定コマンド(先読み指定コマンド)を送信バッファにセットする。
(Step S536-5)
The main CPU 300a sets in the transmission buffer a look-ahead symbol type designation command (look-ahead designation command) corresponding to the special symbol determination data saved in step S536-3.

(ステップS536-7)
メインCPU300aは、上記ステップS536-1の特別図柄当たり仮判定処理によって導出された結果が、大当たりまたは小当たりであるかを判定する。その結果、大当たりまたは小当たりであると判定した場合にはステップS536-9に処理を移し、大当たりまたは小当たりではない(ハズレである)と判定した場合にはステップS536-11に処理を移す。
(Step S536-7)
The main CPU 300a judges whether the result derived by the special symbol winning provisional judgment process in the above step S536-1 is a big win or a small win. If it is judged to be a big win or a small win, the process proceeds to step S536-9, and if it is judged not to be a big win or a small win (miss), the process proceeds to step S536-11.

(ステップS536-9)
メインCPU300aは、大当たり時リーチモード決定乱数判定テーブル(図10(b)、(c)参照)または小当たり時リーチモード決定乱数判定テーブル(図10(d)、(e))をセットし、ステップS536-19に処理を移す。
(Step S536-9)
The main CPU 300a sets the random number judgment table for determining the reach mode at the time of a big win (see Figures 10(b) and (c)) or the random number judgment table for determining the reach mode at the time of a small win (see Figures 10(d) and (e)), and transfers the processing to step S536-19.

(ステップS536-11)
メインCPU300aは、上記ステップS535-13で対象記憶部に記憶したリーチグループ決定乱数をロードする。
(Step S536-11)
The main CPU 300a loads the reach group determination random number stored in the target memory section in step S535-13.

(ステップS536-13)
メインCPU300aは、上記ステップS536-11でロードしたリーチグループ決定乱数が固定値(9000以上)であるかを判定する。ここで、グループ種別は、リーチグループ決定乱数判定テーブルを参照して決定されるが、このリーチグループ決定乱数判定テーブルは、記憶されている保留数に応じて選択される。このとき、リーチグループ決定乱数は、0~10006の範囲から取得され、リーチグループ決定乱数の値が9000以上であれば、保留数に拘わらず、同一のリーチグループ決定乱数判定テーブルが選択され、リーチグループ決定乱数の値が9000未満であれば、保留数に応じて異なるリーチグループ決定乱数判定テーブルが選択される。以下では、リーチグループ決定乱数のうち、保留数に応じて異なるリーチグループ決定乱数判定テーブルが選択される0~8999の範囲の値を不定値とし、保留数に拘わらず同一のリーチグループ決定乱数判定テーブルが選択される9000~10006の範囲の値を固定値と呼ぶ。上記ステップS536-11でロードしたリーチグループ決定乱数が固定値(9000以上)であると判定した場合にはステップS536-15に処理を移し、上記ステップS536-11でロードしたリーチグループ決定乱数が固定値(9000以上)ではないと判定した場合にはステップS536-27に処理を移す。
(Step S536-13)
The main CPU 300a judges whether the reach group determination random number loaded in step S536-11 is a fixed value (9000 or more). Here, the group type is determined by referring to the reach group determination random number judgment table, and this reach group determination random number judgment table is selected according to the number of reserved items stored. At this time, the reach group determination random number is acquired from a range of 0 to 10006, and if the value of the reach group determination random number is 9000 or more, the same reach group determination random number judgment table is selected regardless of the number of reserved items, and if the value of the reach group determination random number is less than 9000, a different reach group determination random number judgment table is selected depending on the number of reserved items. Hereinafter, the value of the reach group determination random number in the range of 0 to 8999, where a different reach group determination random number judgment table is selected depending on the number of reserved items, is referred to as an indefinite value, and the value in the range of 9000 to 10006, where the same reach group determination random number judgment table is selected regardless of the number of reserved items, is referred to as a fixed value. If it is determined that the reach group determination random number loaded in step S536-11 above is a fixed value (9000 or more), processing proceeds to step S536-15, and if it is determined that the reach group determination random number loaded in step S536-11 above is not a fixed value (9000 or more), processing proceeds to step S536-27.

(ステップS536-15)
メインCPU300aは、リーチグループ決定乱数判定テーブル(図9参照)をセットする。なお、リーチグループ決定乱数判定テーブルは、保留数に応じて複数種類設けられているが、ここでは、保留数が0のときに用いられるテーブルが選択される。そして、セットしたリーチグループ決定乱数判定テーブルと、上記ステップS535-13で対象記憶部に記憶したリーチグループ決定乱数とに基づいて、リーチグループ(グループ種別)を仮決定する。
(Step S536-15)
The main CPU 300a sets a reach group determination random number judgment table (see FIG. 9). Note that, although there are multiple types of reach group determination random number judgment tables provided according to the reserved number, here, a table to be used when the reserved number is 0 is selected. Then, a reach group (group type) is provisionally determined based on the set reach group determination random number judgment table and the reach group determination random number stored in the target memory unit in step S535-13.

(ステップS536-17)
メインCPU300aは、上記ステップS536-15で仮決定されたグループ種別に対応するハズレ時リーチモード決定乱数判定テーブル(図10(a)参照)をセットし、ステップS536-19に処理を移す。
(Step S536-17)
The main CPU 300a sets the miss-time reach mode determination random number judgment table (see FIG. 10(a)) corresponding to the group type provisionally determined in step S536-15, and moves the process to step S536-19.

(ステップS536-19)
メインCPU300aは、上記ステップS536-9または上記ステップS536-17でセットしたリーチモード決定乱数判定テーブルと、上記ステップS535-13で対象記憶部に記憶したリーチモード決定乱数とに基づいて、変動モード番号を仮決定する。また、ここでは、変動モード番号とともに、変動パターン乱数判定テーブルが仮決定される。
(Step S536-19)
The main CPU 300a provisionally determines a variation mode number based on the reach mode determination random number judgment table set in the above step S536-9 or step S536-17 and the reach mode determination random number stored in the target memory unit in the above step S535-13. Here, a variation pattern random number judgment table is provisionally determined together with the variation mode number.

(ステップS536-21)
メインCPU300aは、上記ステップS536-19で仮決定した変動モード番号に対応する先読み指定変動モードコマンド(先読み指定コマンド)を送信バッファにセットする。
(Step S536-21)
The main CPU 300a sets in the transmission buffer a read-ahead designation fluctuation mode command (read-ahead designation command) corresponding to the fluctuation mode number tentatively determined in step S536-19.

(ステップS536-23)
メインCPU300aは、上記ステップS536-19で仮決定した変動パターン乱数判定テーブルと、上記ステップS535-13で対象記憶部に記憶した変動パターン乱数とに基づいて、変動パターン番号を仮決定する。
(Step S536-23)
The main CPU 300a provisionally determines a fluctuation pattern number based on the fluctuation pattern random number determination table provisionally determined in the above step S536-19 and the fluctuation pattern random number stored in the target memory unit in the above step S535-13.

(ステップS536-25)
メインCPU300aは、上記ステップS536-23で仮決定した変動パターン番号に対応する先読み指定変動パターンコマンド(先読み指定コマンド)を送信バッファにセットし、当該取得時演出判定処理を終了する。
(Step S536-25)
The main CPU 300a sets in the transmission buffer a look-ahead specified variable pattern command (look-ahead specification command) corresponding to the variable pattern number provisionally determined in step S536-23 above, and terminates the performance determination process at the time of acquisition.

(ステップS536-27)
メインCPU300aは、対象記憶部に新たに記憶された保留について、当該保留が読み出されたときの保留数に応じて、グループ種別、すなわち、変動演出パターンが変化することを示す不定値コマンド(先読み指定変動モードコマンドおよび先読み指定変動パターンコマンド=7FH)を送信バッファにセットし、当該取得時演出判定処理を終了する。
(Step S536-27)
The main CPU 300a sets in the transmission buffer an indefinite value command (look-ahead specified variable mode command and look-ahead specified variable pattern command = 7FH) indicating that the group type, i.e., the variable presentation pattern, will change depending on the number of holds when the holds are read out for the holds newly stored in the target memory unit, and terminates the presentation determination process at the time of acquisition.

図34は、同時回し参考例に係る主制御基板300における大入賞口通過処理(ステップS540)を説明するフローチャートである。 Figure 34 is a flowchart explaining the large prize opening passage process (step S540) in the main control board 300 in the simultaneous rotation reference example.

(ステップS540-1)
メインCPU300aは、上記ステップS500-13で大入賞口検出スイッチオン検出時であると判定した場合には、詳しくは後述する特別電動役物遊技管理フェーズをロードする。なお、詳しくは後述するが、特別電動役物遊技管理フェーズは、大役遊技または小当たり遊技の実行処理の段階、すなわち、大役遊技または小当たり遊技の進行状況を示すものであり、大役遊技または小当たり遊技の実行処理の段階に応じて更新される。
(Step S540-1)
When the main CPU 300a determines in step S500-13 that the big prize opening detection switch is ON, it loads a special electric accessory game management phase, which will be described later in detail. Note that, as will be described later in detail, the special electric accessory game management phase indicates the stage of the execution process of the big prize game or the small prize game, that is, the progress of the big prize game or the small prize game, and is updated according to the stage of the execution process of the big prize game or the small prize game.

(ステップS540-3)
メインCPU300aは、上記ステップS540-1でロードした特別電動役物遊技管理フェーズが、大入賞口開放前処理以上の実行処理の段階を示すものであるかを判定する。なお、特別電動役物遊技管理フェーズは、00H~08Hの9段階が設けられており、このうち、01H~08Hが、大入賞口開放前処理以上の実行処理の段階に相当する。大役遊技または小当たり遊技は、特別電動役物遊技管理フェーズが01H~08Hである場合に実行されることから、ここでは、現在、大役遊技中または小当たり遊技中であるかを判定することとなる。特別電動役物遊技管理フェーズが、大入賞口開放前処理以上の実行処理の段階を示すものであると判定した場合にはステップS540-5に処理を移し、特別電動役物遊技管理フェーズは、大入賞口開放前処理以上の実行処理の段階を示すものではないと判定した場合にはステップS540-7に処理を移す。
(Step S540-3)
The main CPU 300a judges whether the special electric role game management phase loaded in the above step S540-1 indicates a stage of execution processing of the large prize opening pre-processing or higher. The special electric role game management phase has nine stages from 00H to 08H, of which 01H to 08H correspond to the stage of execution processing of the large prize opening pre-processing or higher. Since the large role game or the small prize game is executed when the special electric role game management phase is 01H to 08H, here, it is judged whether the large role game or the small prize game is currently being played. If it is judged that the special electric role game management phase indicates a stage of execution processing of the large prize opening pre-processing or higher, the process proceeds to step S540-5, and if it is judged that the special electric role game management phase does not indicate a stage of execution processing of the large prize opening pre-processing or higher, the process proceeds to step S540-7.

(ステップS540-5)
メインCPU300aは、第1大入賞口126または第2大入賞口128に適正に遊技球が入球したことを示す大入賞口入球コマンドを送信バッファにセットし、大入賞口通過処理を終了する。
(Step S540-5)
The main CPU 300a sets a large prize opening ball entry command, indicating that the game ball has properly entered the first large prize opening 126 or the second large prize opening 128, in the transmission buffer, and ends the large prize opening passage process.

(ステップS540-7)
メインCPU300aは、第1大入賞口126または第2大入賞口128への遊技球の入球が不適切なものであるとして、所定のエラー処理を実行し、大入賞口通過処理を終了する。
(Step S540-7)
The main CPU 300a determines that the entry of the game ball into the first large prize opening 126 or the second large prize opening 128 is inappropriate, executes a prescribed error process, and terminates the large prize opening passage process.

図35は、同時回し参考例に係る特別遊技管理フェーズを説明する図である。既に説明したとおり、同時回し参考例では、第1始動口120または第2始動口122への遊技球の入球を契機とする特別遊技と、ゲート124への遊技球の通過もしくは普図作動口125への遊技球の入球を契機とする普通遊技とが、同時並行して進行する。特別遊技に係る処理は、段階的に、かつ、繰り返し実行されるが、主制御基板300では、こうした特別遊技に係る各処理を特別遊技管理フェーズおよび特別電動役物遊技管理フェーズによって管理している。 Figure 35 is a diagram explaining the special game management phase in the simultaneous spin reference example. As already explained, in the simultaneous spin reference example, a special game triggered by the entry of a game ball into the first start port 120 or the second start port 122 and a normal game triggered by the passage of a game ball through the gate 124 or the entry of a game ball into the normal operation port 125 proceed simultaneously in parallel. The processing related to the special game is executed stepwise and repeatedly, and the main control board 300 manages each processing related to such special games by the special game management phase and the special electric device game management phase.

図35に示すように、メインROM300bには、特別遊技のうちの特別図柄の変動表示を実行制御するための複数の特別遊技制御モジュールが格納されており、これら特別遊技制御モジュールごとに、特別遊技管理フェーズが対応付けられている。具体的には、特別遊技管理フェーズが「00H」である場合には、「特別図柄変動待ち処理」を実行するためのモジュールがコールされ、特別遊技管理フェーズが「01H」である場合には、「特別図柄変動中処理」を実行するためのモジュールがコールされ、特別遊技管理フェーズが「02H」である場合には、「特別図柄停止図柄表示処理」を実行するためのモジュールがコールされる。 As shown in FIG. 35, the main ROM 300b stores a number of special game control modules for controlling the execution of the display of changing special symbols in special games, and each of these special game control modules is associated with a special game management phase. Specifically, when the special game management phase is "00H", a module for executing "special symbol change waiting process" is called, when the special game management phase is "01H", a module for executing "special symbol changing process" is called, and when the special game management phase is "02H", a module for executing "special symbol stop symbol display process" is called.

また、メインROM300bには、特別遊技のうちの大役遊技および小当たり遊技を実行制御するための複数の特別電動役物遊技制御モジュールが格納されており、これら特別電動役物遊技制御モジュールごとに、特別電動役物遊技管理フェーズが対応付けられている。具体的には、特別電動役物遊技管理フェーズが「01H」または「05H」である場合には、「大入賞口開放前処理」を実行するためのモジュールがコールされ、特別電動役物遊技管理フェーズが「02H」または「06H」である場合には、「大入賞口開放制御処理」を実行するためのモジュールがコールされ、特別電動役物遊技管理フェーズが「03H」または「07H」である場合には、「大入賞口閉鎖有効処理」を実行するためのモジュールがコールされ、特別電動役物遊技管理フェーズが「04H」または「08H」である場合には、「大入賞口終了ウェイト処理」を実行するためのモジュールがコールされる。なお、特別電動役物遊技管理フェーズが「00H」である場合には、いずれの特別電動役物遊技制御モジュールもコールされることはない。 In addition, the main ROM 300b stores a plurality of special electric role control modules for controlling the execution of the big prize game and the small prize game among the special games, and each of these special electric role control modules is associated with a special electric role game management phase. Specifically, when the special electric role game management phase is "01H" or "05H", a module for executing "large prize opening pre-processing" is called, when the special electric role game management phase is "02H" or "06H", a module for executing "large prize opening control processing" is called, when the special electric role game management phase is "03H" or "07H", a module for executing "large prize opening closing valid processing" is called, and when the special electric role game management phase is "04H" or "08H", a module for executing "large prize opening end wait processing" is called. In addition, when the special electric role play management phase is "00H", none of the special electric role play control modules are called.

図36は、同時回し参考例に係る主制御基板300における特別遊技管理処理(ステップS600)を説明するフローチャートである。 Figure 36 is a flowchart explaining the special game management process (step S600) in the main control board 300 in the simultaneous rotation reference example.

(ステップS600-1)
メインCPU300aは、特別電動役物遊技管理フェーズをロードする。
(Step S600-1)
The main CPU 300a loads the special electric role play management phase.

(ステップS600-3)
メインCPU300aは、上記ステップS600-1でロードした特別電動役物遊技管理フェーズが、「00H」以外であるかを判定する。すなわち、ここでは、現在、大役遊技中または小当たり遊技中であるかを判定することとなる。特別電動役物遊技管理フェーズが「00H」以外であると判定した場合には当該特別遊技管理処理を終了し、特別電動役物遊技管理フェーズが「00H」以外でないと判定した場合にはステップS600-5に処理を移す。
(Step S600-3)
The main CPU 300a judges whether the special electric role game management phase loaded in the above step S600-1 is other than "00H". That is, here, it judges whether the big role game or the small role game is currently being played. If it is judged that the special electric role game management phase is other than "00H", the special game management process is terminated, and if it is judged that the special electric role game management phase is not other than "00H", the process proceeds to step S600-5.

(ステップS600-5)
メインCPU300aは、特別遊技特別図柄判定フラグをロードする。なお、特別遊技特別図柄判定フラグは、特別遊技管理処理の対象となる保留種別として特1保留および特2保留のいずれであるかを判定するためのものであり、特別遊技特別図柄判定フラグ(00H)は特1保留を示し、特別遊技特別図柄判定フラグ(01H)は特2保留を示す。
(Step S600-5)
The main CPU 300a loads a special game special symbol determination flag. The special game special symbol determination flag is for determining whether the reserved type to be the target of the special game management process is special 1 reserved or special 2 reserved, and the special game special symbol determination flag (00H) indicates special 1 reserved, and the special game special symbol determination flag (01H) indicates special 2 reserved.

(ステップS600-7)
メインCPU300aは、上記ステップS600-5でロードした特別遊技特別図柄判定フラグを反転する。ここでは、特別遊技特別図柄判定フラグが「00H」であった場合には「01H」に反転し、特別遊技特別図柄判定フラグが「01H」であった場合には「00H」に反転する。特別遊技特別図柄判定フラグは初期値が「00H」に設定されているため、図26に示した2回の特別遊技管理処理S600のうち、1回目の特別遊技管理処理S600で特別遊技特別図柄判定フラグが「01H」にされ、特2保留について後続の処理が実行され、2回目の特別遊技管理処理S600で特別遊技特別図柄判定フラグが「00H」にされ、特1保留について後続の処理が実行される。つまり、特2保留が優先して処理されることになる。
(Step S600-7)
The main CPU 300a inverts the special game special symbol determination flag loaded in the above step S600-5. Here, if the special game special symbol determination flag is "00H", it is inverted to "01H", and if the special game special symbol determination flag is "01H", it is inverted to "00H". Since the initial value of the special game special symbol determination flag is set to "00H", in the first special game management process S600 of the two special game management processes S600 shown in FIG. 26, the special game special symbol determination flag is set to "01H" and the subsequent process is executed for the special 2 reservation, and in the second special game management process S600, the special game special symbol determination flag is set to "00H" and the subsequent process is executed for the special 1 reservation. In other words, the special 2 reservation is processed preferentially.

(ステップS600-9)
メインCPU300aは、上記ステップS600-7で反転した特別遊技特別図柄判定フラグをセーブする。
(Step S600-9)
The main CPU 300a saves the special game special symbol determination flag that was inverted in step S600-7.

(ステップS600-11)
メインCPU300aは、特別遊技管理フェーズをロードする。
(Step S600-11)
The main CPU 300a loads the special game management phase.

(ステップS600-13)
メインCPU300aは、上記ステップS600-11でロードした特別遊技管理フェーズに対応する特別遊技制御モジュールを選択する。
(Step S600-13)
The main CPU 300a selects the special game control module corresponding to the special game management phase loaded in step S600-11.

(ステップS600-15)
メインCPU300aは、上記ステップS600-13で選択した特別遊技制御モジュールをコールして処理を開始する。
(Step S600-15)
The main CPU 300a calls the special game control module selected in step S600-13 and starts processing.

(ステップS600-17)
メインCPU300aは、特別遊技の制御時間を管理する特別遊技タイマをロードし、当該特別遊技管理処理を終了する。
(Step S600-17)
The main CPU 300a loads a special game timer that manages the control time of the special game, and ends the special game management process.

図37は、同時回し参考例に係る主制御基板300における特別図柄変動待ち処理を説明するフローチャートである。この特別図柄変動待ち処理は、特別遊技管理フェーズが「00H」であった場合に実行される。 Figure 37 is a flowchart explaining the special symbol change waiting process in the main control board 300 in the simultaneous spin reference example. This special symbol change waiting process is executed when the special game management phase is "00H".

(ステップS610-1)
メインCPU300aは、特別遊技管理処理の対象となる保留(特1保留または特2保留、以下、対象保留と呼ぶ)の特別図柄保留球数が1以上であるかを判定する。その結果、特別図柄保留球数が1以上であると判定した場合にはステップS610-3に処理を移し、特別図柄保留球数が1以上ではないと判定した場合には当該特別図柄変動待ち処理を終了する。
(Step S610-1)
The main CPU 300a judges whether the number of reserved balls with special symbols in the reserved balls (special 1 reserved or special 2 reserved, hereinafter referred to as the target reserved balls) that are the subject of the special game management process is 1 or more. If it is judged that the number of reserved balls with special symbols is 1 or more, the process proceeds to step S610-3, and if it is judged that the number of reserved balls with special symbols is not 1 or more, the process of waiting for the change of the special symbols is terminated.

(ステップS610-3)
メインCPU300aは、特別遊技管理処理の対象となっていない保留(特2保留または特1保留、以下、非対象保留と呼ぶ)に基づく特別図柄(以下、非対象特別図柄と呼ぶ)が確定中であるかを判定する。その結果、非対象特別図柄が確定中であると判定した場合にはステップS610-5に処理を移し、非対象特別図柄に基づく特別図柄が確定中ではないと判定した場合にはステップS610-9に処理を移す。
(Step S610-3)
The main CPU 300a judges whether a special symbol (hereinafter referred to as a non-target special symbol) based on a reserve that is not the target of the special game management process (special reserve 2 or special reserve 1, hereinafter referred to as a non-target reserve) is being determined. If it is determined that a non-target special symbol is being determined, the process proceeds to step S610-5, and if it is determined that a special symbol based on a non-target special symbol is not being determined, the process proceeds to step S610-9.

(ステップS610-5)
メインCPU300aは、非対象特別図柄が大当たり図柄であるかを判定する。その結果、大当たり図柄であると判定した場合には当該特別図柄変動待ち処理を終了し、大当たり図柄でないと判定した場合にはステップS610-7に処理を移す。
(Step S610-5)
The main CPU 300a judges whether the non-target special symbol is a big win symbol. If it is judged to be a big win symbol, the process of waiting for the special symbol change is terminated. If it is judged not to be a big win symbol, the process proceeds to step S610-7.

(ステップS610-7)
メインCPU300aは、非対象特別図柄が小当たり図柄であるかを判定する。その結果、小当たり図柄であると判定した場合には当該特別図柄変動待ち処理を終了し、小当たり図柄でないと判定した場合にはステップS610-9に処理を移す。
(Step S610-7)
The main CPU 300a judges whether the non-target special symbol is a small win symbol. If it is judged to be a small win symbol, the main CPU 300a ends the special symbol variation waiting process, and if it is judged not to be a small win symbol, the process proceeds to step S610-9.

(ステップS610-9)
メインCPU300aは、対象保留に対応する特図保留記憶領域の第1記憶部~第4記憶部に記憶されている対象保留を、1つ序数の小さい記憶部にブロック転送する。具体的には、第2記憶部~第4記憶部に記憶されている対象保留を、第1記憶部~第3記憶部に転送する。また、メインRAM300cには、処理対象となる第0記憶部が設けられており、第1記憶部に記憶されている対象保留を、第0記憶部にブロック転送する。なお、この特別図柄記憶エリアシフト処理においては、対象保留に対応する対象特別図柄保留球数カウンタのカウンタ値を「1」減算するとともに、対象保留が「1」減算されたことを示す、保留減指定コマンドを送信バッファにセットする。
(Step S610-9)
The main CPU 300a transfers the target reservation stored in the first to fourth storage sections of the special symbol reservation storage area corresponding to the target reservation in a block to a storage section with a smaller ordinal number by one. Specifically, the target reservation stored in the second to fourth storage sections is transferred to the first to third storage sections. The main RAM 300c is also provided with a 0th storage section to be processed, and the target reservation stored in the 1st storage section is block transferred to the 0th storage section. In addition, in this special symbol storage area shift process, the counter value of the target special symbol reservation ball number counter corresponding to the target reservation is subtracted by "1", and a reservation subtraction designation command indicating that the target reservation has been subtracted by "1" is set in the transmission buffer.

(ステップS611)
メインCPU300aは、大役抽選を行う特別図柄当たり判定処理を実行する。この特別図柄当たり判定処理については後述する。
(Step S611)
The main CPU 300a executes a special symbol winning determination process for performing a lottery for a big win. This special symbol winning determination process will be described later.

(ステップS610-11)
メインCPU300aは、特別図柄を決定するための特別図柄図柄判定処理を実行する。ここでは、上記ステップS611における大役抽選の結果が大当たりまたは小当たりであった場合、第0記憶部に転送された当たり図柄乱数、保留種別をロードし、対応する当たり図柄乱数判定テーブルまたは小当たり図柄乱数判定テーブルを選択して特別図柄判定データを抽出し、抽出した特別図柄判定データ(大当たり図柄の種別)をセーブする。また、上記ステップS611における大役抽選の結果がハズレであった場合には、ハズレ用の特別図柄判定データをセーブする。そして、特別図柄判定データをセーブしたら、当該特別図柄判定データに対応する図柄種別指定コマンドを送信バッファにセットする。
(Step S610-11)
The main CPU 300a executes a special symbol pattern determination process to determine a special symbol. Here, if the result of the big role lottery in the step S611 is a big win or a small win, the winning symbol random number and reserved type transferred to the 0th memory unit are loaded, the corresponding winning symbol random number determination table or small win symbol random number determination table is selected to extract special symbol determination data, and the extracted special symbol determination data (type of big win symbol) is saved. Also, if the result of the big role lottery in the step S611 is a loss, the special symbol determination data for loss is saved. Then, after the special symbol determination data is saved, a symbol type designation command corresponding to the special symbol determination data is set in the transmission buffer.

(ステップS610-13)
メインCPU300aは、上記ステップS610-11で抽出した特別図柄判定データに対応する特別図柄停止図柄番号をセーブする。なお、第1特別図柄表示器160および第2特別図柄表示器162は、それぞれ7セグで構成されており、7セグを構成する各セグメントには番号(カウンタ値)が対応付けられている。ここで決定する特別図柄停止図柄番号は、最終的に点灯するセグメントの番号(カウンタ値)を示すものである。
(Step S610-13)
The main CPU 300a saves the special symbol stop symbol number corresponding to the special symbol determination data extracted in step S610-11. The first special symbol display 160 and the second special symbol display 162 are each composed of 7 segments, and each segment constituting the 7 segments is associated with a number (counter value). The special symbol stop symbol number determined here indicates the number (counter value) of the segment that will finally be lit up.

(ステップS612)
メインCPU300aは、変動モード番号および変動パターン番号を決定する特別図柄変動番号決定処理を実行する。この特別図柄変動番号決定処理の詳細は後述する。
(Step S612)
The main CPU 300a executes a special symbol variable number determination process for determining a variable mode number and a variable pattern number. The details of this special symbol variable number determination process will be described later.

(ステップS610-15)
メインCPU300aは、上記ステップS612で決定された変動モード番号および変動パターン番号をロードするとともに、変動時間決定テーブルを参照して、変動時間1および変動時間2を決定する。そして、決定した変動時間1、2の合計時間を、特別図柄変動タイマにセットする。
(Step S610-15)
The main CPU 300a loads the fluctuation mode number and the fluctuation pattern number determined in step S612, and refers to the fluctuation time determination table to determine the fluctuation time 1 and the fluctuation time 2. Then, the total time of the determined fluctuation times 1 and 2 is set in the special symbol fluctuation timer.

(ステップS610-17)
メインCPU300aは、大役抽選の結果が大当たりであるか否かを判定し、大当たりであった場合には、上記ステップS610-11でセーブした特別図柄判定データをロードして、大当たり図柄の種別を確認する。そして、遊技状態設定テーブルおよび現在の遊技状態を参照して、大役遊技終了後に設定される遊技状態および高確回数、時短回数を判定し、その判定結果を特別図柄確率状態予備フラグ、時短状態予備フラグ、および、高確回数切り予備カウンタ、時短回数切り予備カウンタにセーブする。なお、ハズレ図柄がセーブされている場合には、当該処理を実行することなく、次の処理に移行する。
(Step S610-17)
The main CPU 300a judges whether the result of the big prize lottery is a big prize or not, and if it is a big prize, loads the special symbol judgment data saved in the above step S610-11 and checks the type of the big prize symbol. Then, referring to the game state setting table and the current game state, it judges the game state, the high probability number of times, and the time-saving number of times to be set after the big prize game ends, and saves the judgment results in the special symbol probability state reserve flag, the time-saving state reserve flag, the high probability number cut reserve counter, and the time-saving number cut reserve counter. Note that if a losing symbol is saved, the process proceeds to the next process without executing the process.

(ステップS610-19)
メインCPU300aは、第1特別図柄表示器160または第2特別図柄表示器162において、特別図柄の変動表示を開始するために、特別図柄表示図柄カウンタを設定する処理を実行する。第1特別図柄表示器160および第2特別図柄表示器162を構成する7セグの各セグメントにはカウンタ値が対応付けられており、特別図柄表示図柄カウンタに設定されたカウンタ値に対応するセグメントが点灯制御される。ここでは、特別図柄の変動表示の開始時に点灯させるセグメントに対応するカウンタ値が特別図柄表示図柄カウンタに設定されることとなる。なお、特別図柄表示図柄カウンタは、第1特別図柄表示器160に対応する特別図柄1表示図柄カウンタと、第2特別図柄表示器162に対応する特別図柄2表示図柄カウンタとが別個に設けられており、ここでは、保留種別に対応するカウンタにカウンタ値が設定される。
(Step S610-19)
The main CPU 300a executes a process of setting a special symbol display counter in order to start the variable display of the special symbol in the first special symbol display 160 or the second special symbol display 162. A counter value is associated with each segment of the 7-segment that constitutes the first special symbol display 160 and the second special symbol display 162, and the segment corresponding to the counter value set in the special symbol display counter is controlled to light up. Here, the counter value corresponding to the segment to be lit at the start of the variable display of the special symbol is set in the special symbol display counter. Note that the special symbol display counter is provided separately as a special symbol 1 display counter corresponding to the first special symbol display 160 and a special symbol 2 display counter corresponding to the second special symbol display 162, and here, a counter value is set in the counter corresponding to the reserved type.

(ステップS613)
メインCPU300aは、回数切り管理処理を実行する。ここでは、変動回数に応じて時短遊技状態を終了させるための処理が行われる。この回数切り管理処理については後述する。
(Step S613)
The main CPU 300a executes a number-of-plays management process. Here, a process for ending the time-limited gaming state according to the number of times of fluctuation is performed. This number-of-plays management process will be described later.

(ステップS610-21)
メインCPU300aは、高確回数および時短回数が0になるまでの残り回数(実残り回数)を示す回数コマンドを送信バッファにセットする。
(Step S610-21)
The main CPU 300a sets in the transmission buffer a number command indicating the number of times remaining (actual remaining number of times) until the high probability number of times and the time-saving number of times reach 0.

(ステップS610-23)
メインCPU300aは、特別図柄の変動表示の開始時の遊技状態を示す遊技状態変化指定コマンドを送信バッファにセットする。
(Step S610-23)
The main CPU 300a sets in the transmission buffer a game state change designation command indicating the game state at the start of the variable display of the special symbol.

(ステップS610-25)
メインCPU300aは、特別遊技管理フェーズを「01H」に更新し、当該特別図柄変動待ち処理を終了する。
(Step S610-25)
The main CPU 300a updates the special game management phase to "01H" and ends the special symbol change waiting process.

図38は、同時回し参考例に係る特別図柄当たり判定処理(S611)を説明するフローチャートである。 Figure 38 is a flowchart explaining the special symbol winning determination process (S611) for the simultaneous spin reference example.

(ステップS611-1)
メインCPU300aは、特別図柄確率状態フラグをロードする。
(Step S611-1)
The main CPU 300a loads the special symbol probability state flag.

(ステップS611-3)
メインCPU300aは、設定値バッファの登録設定値をロードする。
(Step S611-3)
The main CPU 300a loads the registered setting values in the setting value buffer.

(ステップS611-5)
メインCPU300aは、上記ステップS611-3でロードした登録設定値が正常範囲内の値であるかを判定する。その結果、正常範囲内の値であると判定した場合にはステップS611-11に処理を移し、正常範囲内の値ではないと判定した場合にはステップS611-7に処理を移す。
(Step S611-5)
The main CPU 300a judges whether the registered setting value loaded in step S611-3 is within the normal range. If it is judged to be within the normal range, the process proceeds to step S611-11. If it is judged to be not within the normal range, the process proceeds to step S611-7.

(ステップS611-7)
メインCPU300aは、遊技機状態フラグに03H(設定異常状態)をセットする。
(Step S611-7)
The main CPU 300a sets the gaming machine status flag to 03H (abnormal setting status).

(ステップS611-9)
メインCPU300aは、設定異常状態コマンド(サブコマンド)を送信バッファにセットし、当該特別図柄当たり判定処理を終了する。この設定異常状態コマンドが副制御基板330に送信されると、設定異常である旨の報知がなされる。
(Step S611-9)
The main CPU 300a sets the setting abnormal state command (sub-command) in the transmission buffer and ends the special symbol winning determination process. When this setting abnormal state command is transmitted to the sub-control board 330, a notification that a setting abnormality has occurred is issued.

(ステップS611-11)
メインCPU300aは、上記ステップS611-1およびステップS611-3でロードした情報に対応する大当たり決定乱数判定テーブルを参照し、大当たりまたは小当たりと判定する際の下限値および上限値をそれぞれセットする。
(Step S611-11)
The main CPU 300a refers to the big win determination random number judgment table corresponding to the information loaded in the above steps S611-1 and S611-3, and sets the lower limit and upper limit for determining whether a big win or a small win has occurred.

(ステップS611-13)
メインCPU300aは、第0記憶部に転送された大当たり決定乱数と、上記の下限値および上限値とを比較し、大当たりまたは小当たりの当選有無を判定する判定処理(大役抽選)を行う。
(Step S611-13)
The main CPU 300a compares the jackpot determination random number transferred to the 0th memory unit with the above-mentioned lower limit value and upper limit value, and performs a determination process (big prize lottery) to determine whether a jackpot or small jackpot has been won.

(ステップS611-15)
メインCPU300aは、非対象特別図柄が大当たり図柄であるかを判定する。その結果、大当たり図柄であると判定した場合にはステップS611-17に処理を移し、大当たり図柄でないと判定した場合にはステップS611-21に処理を移す。
(Step S611-15)
The main CPU 300a judges whether the non-target special symbol is a big win symbol. If it is judged to be a big win symbol, the process proceeds to step S611-17. If it is judged not to be a big win symbol, the process proceeds to step S611-21.

(ステップS611-17)
メインCPU300aは、上記ステップS611-13における大役抽選結果が小当たりまたはハズレであるかを判定する。その結果、小当たりまたはハズレであると判定した場合にはステップS611-21に処理を移し、小当たりおよびハズレでないと判定した場合にはステップS611-19に処理を移す。
(Step S611-17)
The main CPU 300a judges whether the result of the big role lottery in the step S611-13 is a small win or a miss. If it is judged to be a small win or a miss, the process proceeds to step S611-21, and if it is not a small win or a miss, the process proceeds to step S611-19.

(ステップS611-19)
メインCPU300aは、上記ステップS611-13における大役抽選結果をハズレに変更する。
(Step S611-19)
The main CPU 300a changes the result of the big role lottery in the above step S611-13 to a loss.

(ステップS611-21)
メインCPU300aは、上記ステップS611-13の判定処理の結果、または、上記ステップS611-19で変更された結果を判定情報としてセットし、当該特別図柄当たり判定処理を終了する。
(Step S611-21)
The main CPU 300a sets the result of the determination process in the above step S611-13 or the result changed in the above step S611-19 as determination information, and ends the special symbol winning determination process.

図39は、同時回し参考例に係る主制御基板300における特別図柄変動番号決定処理(ステップS612)を説明するフローチャートである。 Figure 39 is a flowchart explaining the special pattern variable number determination process (step S612) in the main control board 300 for the simultaneous rotation reference example.

(ステップS612-1)
メインCPU300aは、上記ステップS611における大役抽選の結果が大当たりまたは小当たりであるかを判定する。その結果、大当たりまたは小当たりであると判定した場合にはステップS612-3に処理を移し、大当たりおよび小当たりのいずれでもない(ハズレである)と判定した場合にはステップS612-5に処理を移す。
(Step S612-1)
The main CPU 300a judges whether the result of the big prize lottery in the step S611 is a big win or a small win. If it is judged to be a big win or a small win, the process proceeds to step S612-3, and if it is judged to be neither a big win nor a small win (a miss), the process proceeds to step S612-5.

(ステップS612-3)
メインCPU300aは、現在の遊技状態および保留種別に対応するリーチモード決定乱数判定テーブルをセットする。
(Step S612-3)
The main CPU 300a sets a reach mode determination random number judgment table corresponding to the current game status and reserved type.

(ステップS612-5)
メインCPU300aは、読み出した保留の保留種別が特2保留である場合には、特別図柄2保留球数カウンタのカウンタ値を確認し、読み出した保留の保留種別が特1保留である場合には、特別図柄1保留球数カウンタのカウンタ値を確認する。
(Step S612-5)
When the hold type of the read-out hold is special 2 hold, the main CPU 300a checks the counter value of the special pattern 2 hold ball count counter, and when the hold type of the read-out hold is special 1 hold, the main CPU 300a checks the counter value of the special pattern 1 hold ball count counter.

(ステップS612-7)
メインCPU300aは、現在の遊技状態、上記ステップS612-5で確認した保留数、保留種別に基づいて、対応するリーチグループ決定乱数判定テーブルをセットする。そして、セットしたリーチグループ決定乱数判定テーブルと、上記ステップS610-9で第0記憶部に転送したリーチグループ決定乱数とに基づいて、リーチグループ(グループ種別)を決定する。
(Step S612-7)
The main CPU 300a sets the corresponding reach group determination random number judgment table based on the current game state, the reserved number and reserved type confirmed in the above step S612-5, and determines the reach group (group type) based on the set reach group determination random number judgment table and the reach group determination random number transferred to the 0th memory unit in the above step S610-9.

(ステップS612-9)
メインCPU300aは、上記ステップS612-7で決定されたグループ種別に対応するハズレ時リーチモード決定乱数判定テーブルをセットする。
(Step S612-9)
The main CPU 300a sets a random number judgment table for determining a losing reach mode corresponding to the group type determined in step S612-7.

(ステップS612-11)
メインCPU300aは、上記ステップS612-3または上記ステップS612-9でセットしたリーチモード決定乱数判定テーブルと、上記ステップS610-9で第0記憶部に転送したリーチモード決定乱数とに基づいて、変動モード番号を決定する。また、ここでは、変動モード番号とともに、変動パターン乱数判定テーブルが決定される。
(Step S612-11)
The main CPU 300a determines a variation mode number based on the reach mode determination random number judgment table set in the above step S612-3 or step S612-9 and the reach mode determination random number transferred to the 0th memory unit in the above step S610-9. Here, a variation pattern random number judgment table is also determined together with the variation mode number.

(ステップS612-13)
メインCPU300aは、上記ステップS612-11で決定した変動モード番号に対応する変動モードコマンドを送信バッファにセットする。
(Step S612-13)
The main CPU 300a sets in the transmission buffer a fluctuation mode command corresponding to the fluctuation mode number determined in step S612-11 above.

(ステップS612-15)
メインCPU300aは、上記ステップS612-11で決定した変動パターン乱数判定テーブルと、上記ステップS610-9で第0記憶部に転送した変動パターン乱数とに基づいて、変動パターン番号を決定する。
(Step S612-15)
The main CPU 300a determines a variation pattern number based on the variation pattern random number determination table determined in the above step S612-11 and the variation pattern random number transferred to the 0th memory unit in the above step S610-9.

(ステップS612-17)
メインCPU300aは、上記ステップS612-15で決定した変動パターン番号に対応する変動パターンコマンドを送信バッファにセットして、当該特別図柄変動番号決定処理を終了する。
(Step S612-17)
The main CPU 300a sets the variation pattern command corresponding to the variation pattern number determined in step S612-15 in the transmission buffer, and ends the special pattern variation number determination process.

図40は、同時回し参考例に係る主制御基板300における回数切り管理処理(ステップS613)を説明するフローチャートである。 Figure 40 is a flowchart explaining the cutoff number management process (step S613) in the main control board 300 in the simultaneous rotation reference example.

(ステップS613-1)
メインCPU300aは、時短回数、すなわち、時短回数切りカウンタのカウンタ値が0よりも大きいかを判定する。その結果、時短回数が0よりも大きいと判定した場合にはステップS613-3に処理を移し、時短回数が0であると判定した場合には、当該回数切り管理処理を終了する。
(Step S613-1)
The main CPU 300a judges whether the time-saving count, i.e., the counter value of the time-saving count cut-off counter, is greater than 0. As a result, if it is judged that the time-saving count is greater than 0, the process proceeds to step S613-3, and if it is judged that the time-saving count is 0, the time-cut-off management process is terminated.

(ステップS613-3)
メインCPU300aは、時短回数切りカウンタをデクリメントする。
(Step S613-3)
The main CPU 300a decrements the time-saving cut counter.

(ステップS613-5)
メインCPU300aは、上記ステップS613-3において、カウンタ値(時短回数)が0に更新されたかを判定する。その結果、時短回数が0であると判定した場合にはステップS613-7に処理を移し、時短回数は0ではないと判定した場合には当該回数切り管理処理を終了する。
(Step S613-5)
In the above step S613-3, the main CPU 300a judges whether the counter value (time-saving count) has been updated to 0. As a result, if it is judged that the time-saving count is 0, the process proceeds to step S613-7, and if it is judged that the time-saving count is not 0, the process for managing the number of times the game has been cut is terminated.

(ステップS613-7)
メインCPU300aは、普通遊技状態を非時短遊技状態に設定するべく、時短状態フラグの設定を行う。これにより、普通遊技状態が時短遊技状態に設定された後、変動回数が時短回数(ここでは50回または100回)に到達したときの変動開始時に、普通遊技状態が非時短遊技状態に変更されることとなる。例えば、高確前兆状態に設定されていた場合には、最優位状態に設定されることとなる。
(Step S613-7)
The main CPU 300a sets the time-saving state flag to set the normal game state to a non-time-saving game state. As a result, after the normal game state is set to the time-saving game state, the normal game state is changed to the non-time-saving game state at the start of the change when the change count reaches the time-saving count (here, 50 or 100 times). For example, if it is set to the high probability premonition state, it is set to the most advantageous state.

(ステップS613-9)
メインCPU300aは、時短終了フラグをオンして、当該回数切り管理処理を終了する。
(Step S613-9)
The main CPU 300a turns on the time-saving end flag and ends the number-of-times-cut management process.

図41は、同時回し参考例に係る主制御基板300における特別図柄変動中処理を説明するフローチャートである。 Figure 41 is a flowchart explaining the processing during special pattern change on the main control board 300 in the simultaneous rotation reference example.

(ステップS620-1)
メインCPU300aは、中断中フラグがオンしているかを判定する。なお、詳しくは後述するが、同時回し参考例では、第1特別図柄表示器160における図柄の変動表示中に、第2特別図柄表示器162に小当たり図柄が停止表示される場合がある。この場合、第2特別図柄表示器162に小当たり図柄が停止表示されると、小当たり遊技が実行されるが、この間、第1特別図柄表示器160における特別図柄の変動時間の減算が中断され、小当たり遊技の終了後に、第1特別図柄表示器160における図柄の変動表示が再開される。中断中フラグは、第2特別図柄表示器162に小当たり図柄が停止表示されたときに、第1特別図柄表示器160において図柄の変動表示中であった場合にオンされる。ここでは、中断中フラグがオンであると判定した場合には当該特別図柄変動中処理を終了し、中断中フラグがオンではないと判定した場合にはステップS620-3に処理を移す。
(Step S620-1)
The main CPU 300a judges whether the interruption flag is on. In addition, although details will be described later, in the simultaneous rotation reference example, a small winning pattern may be displayed in a stopped state on the second special pattern display 162 during the variable display of the pattern on the first special pattern display 160. In this case, when the small winning pattern is displayed in a stopped state on the second special pattern display 162, a small winning game is executed, during which the subtraction of the variable time of the special pattern on the first special pattern display 160 is suspended, and after the small winning game ends, the variable display of the pattern on the first special pattern display 160 is resumed. The interruption flag is turned on if the variable display of the pattern is being performed on the first special pattern display 160 when the small winning pattern is displayed in a stopped state on the second special pattern display 162. Here, if it is determined that the interruption flag is on, the special pattern variable process is terminated, and if it is determined that the interruption flag is not on, the process is moved to step S620-3.

(ステップS620-3)
メインCPU300aは、特別図柄変動ベースカウンタを更新する処理を実行する。なお、特別図柄変動ベースカウンタは、所定周期(例えば100ms)で1周するようにカウンタ値が設定される。具体的には、特別図柄変動ベースカウンタのカウンタ値が「0」であった場合には、所定のカウンタ値(例えば25)がセットされ、カウンタ値が「1」以上であった場合には、現在のカウンタ値から「1」減算した値にカウンタ値を更新する。
(Step S620-3)
The main CPU 300a executes a process of updating the special symbol variation base counter. The special symbol variation base counter is set to a counter value that completes one revolution in a predetermined cycle (e.g., 100 ms). Specifically, when the counter value of the special symbol variation base counter is "0", a predetermined counter value (e.g., 25) is set, and when the counter value is "1" or more, the counter value is updated to a value obtained by subtracting "1" from the current counter value.

(ステップS620-5)
メインCPU300aは、上記ステップS620-3で更新した特別図柄変動ベースカウンタのカウンタ値が「0」であるかを判定する。その結果、カウンタ値が「0」であった場合にはステップS620-7に処理を移し、カウンタ値が「0」ではなかった場合にはステップS620-11に処理を移す。
(Step S620-5)
The main CPU 300a judges whether the counter value of the special symbol variation base counter updated in step S620-3 is "0". If the counter value is "0", the process proceeds to step S620-7. If the counter value is not "0", the process proceeds to step S620-11.

(ステップS620-7)
メインCPU300aは、上記ステップS610-15で設定された特別図柄変動タイマのタイマ値を所定値減算する特別図柄変動タイマ更新処理を行う。
(Step S620-7)
The main CPU 300a performs a special symbol fluctuation timer update process to subtract a predetermined value from the timer value of the special symbol fluctuation timer set in the above step S610-15.

(ステップS620-9)
メインCPU300aは、上記ステップS620-7で更新した特別図柄変動タイマのタイマ値が「0」であるかを判定する。その結果、タイマ値が「0」であった場合にはステップS620-17に処理を移し、タイマ値が「0」ではなかった場合にはステップS620-11に処理を移す。
(Step S620-9)
The main CPU 300a judges whether the timer value of the special symbol fluctuation timer updated in the above step S620-7 is "0". If the timer value is "0", the process proceeds to step S620-17, and if the timer value is not "0", the process proceeds to step S620-11.

(ステップS620-11)
メインCPU300aは、第1特別図柄表示器160および第2特別図柄表示器162を構成する7セグの各セグメントの点灯時間を計時する特別図柄表示タイマを更新する。具体的には、特別図柄表示タイマのタイマ値が「0」であった場合には、所定のタイマ値がセットされ、タイマ値が「1」以上であった場合には、現在のタイマ値から「1」減算した値にタイマ値を更新する。
(Step S620-11)
The main CPU 300a updates the special symbol display timer that measures the lighting time of each of the 7-segment segments that make up the first special symbol display device 160 and the second special symbol display device 162. Specifically, if the timer value of the special symbol display timer is "0", a predetermined timer value is set, and if the timer value is "1" or greater, the timer value is updated to a value obtained by subtracting "1" from the current timer value.

(ステップS620-13)
メインCPU300aは、特別図柄表示タイマのタイマ値が「0」であるかを判定する。その結果、特別図柄表示タイマのタイマ値が「0」であると判定した場合にはステップS620-15に処理を移し、特別図柄表示タイマのタイマ値が「0」でないと判定した場合には当該特別図柄変動中処理を終了する。
(Step S620-13)
The main CPU 300a judges whether the timer value of the special symbol display timer is "0". If it judges that the timer value of the special symbol display timer is "0", the process proceeds to step S620-15, and if it judges that the timer value of the special symbol display timer is not "0", the process during the special symbol variation is terminated.

(ステップS620-15)
メインCPU300aは、更新対象の特別図柄表示図柄カウンタのカウンタ値を更新し、当該特別図柄変動中処理を終了する。これにより、7セグを構成する各セグメントが、所定時間おきに順次点灯することとなる。
(Step S620-15)
The main CPU 300a updates the counter value of the special symbol display symbol counter to be updated, and ends the special symbol variation process. As a result, each segment constituting the 7-segment display is sequentially lit at predetermined time intervals.

(ステップS620-17)
メインCPU300aは、非対象特別図柄が変動表示中であるかを判定する。その結果、非対象特別図柄が変動表示中であると判定した場合にはステップS621に処理を移し、非対象特別図柄が変動表示中でないと判定した場合にはステップS620-19に処理を移す。
(Step S620-17)
The main CPU 300a judges whether the non-target special symbols are being displayed variably. If it is judged that the non-target special symbols are being displayed variably, the process proceeds to step S621. If it is judged that the non-target special symbols are not being displayed variably, the process proceeds to step S620-19.

(ステップS621)
メインCPU300aは、図柄強制停止処理を実行する。この図柄強制停止処理については、図42を用いて後述する。
(Step S621)
The main CPU 300a executes a symbol forcible stop process, which will be described later with reference to FIG.

(ステップS620-19)
メインCPU300aは、特別遊技管理フェーズを「02H」に更新する。
(Step S620-19)
The main CPU 300a updates the special game management phase to "02H".

(ステップS620-21)
メインCPU300aは、対象の特別図柄表示図柄カウンタに、上記ステップS610-13で決定した特別図柄停止図柄番号(カウンタ値)をセーブする。これにより、第1特別図柄表示器160または第2特別図柄表示器162に、決定された特別図柄が停止表示されることとなる。
(Step S620-21)
The main CPU 300a saves the special symbol stop symbol number (counter value) determined in step S610-13 in the target special symbol display symbol counter. As a result, the determined special symbol is stopped and displayed on the first special symbol display device 160 or the second special symbol display device 162.

(ステップS620-23)
メインCPU300aは、第1特別図柄表示器160または第2特別図柄表示器162に特別図柄が停止表示されたことを示す特図停止指定コマンドを送信バッファにセットする。
(Step S620-23)
The main CPU 300a sets in the transmission buffer a special symbol stop designation command indicating that a special symbol has been stopped and displayed on the first special symbol display device 160 or the second special symbol display device 162.

(ステップS620-25)
メインCPU300aは、特別図柄を停止表示する時間である特別図柄変動停止時間を特別遊技タイマにセットし、当該特別図柄変動中処理を終了する。
(Step S620-25)
The main CPU 300a sets the special pattern variation stop time, which is the time for which the special pattern is stopped and displayed, in the special game timer, and ends the special pattern variation process.

図42は、同時回し参考例に係る主制御基板300における図柄強制停止処理(ステップS621)を説明するフローチャートである。 Figure 42 is a flowchart explaining the forced pattern stop process (step S621) in the main control board 300 in the simultaneous rotation reference example.

(ステップS621-1)
メインCPU300aは、停止表示中(当該)の特別図柄が小当たり図柄であるかを判定する。その結果、小当たり図柄であると判定した場合にはステップS621-3に処理を移し、小当たり図柄ではないと判定した場合にはステップS621-11に処理を移す。
(Step S621-1)
The main CPU 300a judges whether the currently displayed special symbol is a small win symbol. If it is judged to be a small win symbol, the process proceeds to step S621-3. If it is judged not to be a small win symbol, the process proceeds to step S621-11.

(ステップS621-3)
メインCPU300aは、特別遊技特別図柄判定フラグが00Hであるか、つまり、小当たり図柄が停止表示されたのが、第1特別図柄表示器160であるかを判定する。その結果、特別遊技特別図柄判定フラグが00Hであると判定した場合にはステップS621-11に処理を移し、特別遊技特別図柄判定フラグが00Hではないと判定した場合にはステップS621-5に処理を移す。
(Step S621-3)
The main CPU 300a judges whether the special game special symbol determination flag is 00H, that is, whether the small win symbol is stopped and displayed on the first special symbol display 160. If it is judged that the special game special symbol determination flag is 00H, the process proceeds to step S621-11, and if it is judged that the special game special symbol determination flag is not 00H, the process proceeds to step S621-5.

(ステップS621-5)
メインCPU300aは、変動表示中(他方)の特別図柄が大当たり図柄であるかを判定する。その結果、大当たり図柄であると判定した場合にはステップS621-11に処理を移し、大当たり図柄ではないと判定した場合にはステップS621-7に処理を移す。
(Step S621-5)
The main CPU 300a judges whether the special symbol being changed (the other) is a big win symbol. If it is judged to be a big win symbol, the process proceeds to step S621-11. If it is judged not to be a big win symbol, the process proceeds to step S621-7.

(ステップS621-7)
メインCPU300aは、中断中フラグをオンする。
(Step S621-7)
The main CPU 300a turns on the interruption flag.

(ステップS621-9)
メインCPU300aは、特別図柄の変動表示を中断する変動中断処理を実行し、当該図柄強制停止処理を終了する。ここでは、変動時間の残り時間や、特別図柄にかかる情報を一時的に所定の記憶領域に退避させる処理を行う。
(Step S621-9)
The main CPU 300a executes a variation interruption process to interrupt the variable display of the special symbols, and ends the symbol forced stop process. Here, the main CPU 300a executes a process to temporarily save the remaining time of the variation time and information related to the special symbols in a predetermined memory area.

(ステップS621-11)
メインCPU300aは、図柄が変動表示されている第1特別図柄表示器160または第2特別図柄表示器162にハズレ図柄を強制停止させるとともに、残りの変動時間を強制的に終了させるための変動時間特殊停止フラグをオンにする処理を行い、当該図柄強制停止処理を終了する。
(Step S621-11)
The main CPU 300a forcibly stops the losing pattern on the first special pattern display 160 or the second special pattern display 162 on which the pattern is being displayed in a changing manner, and performs processing to turn on a special stop flag for the changing time to forcibly end the remaining changing time, and then ends the forced pattern stop processing.

上記の処理により、第1特別図柄表示器160に小当たり図柄が停止表示された場合には、第2特別図柄表示器162にハズレ図柄が強制停止表示される。また、第2特別図柄表示器162に小当たり図柄が停止表示された場合、大当たり図柄が第1特別図柄表示器160に最終的に停止表示される変動表示中であれば、第1特別図柄表示器160にハズレ図柄が強制停止表示される。一方、第2特別図柄表示器162に小当たり図柄が停止表示された場合、小当たり図柄またはハズレ図柄が第1特別図柄表示器160に最終的に停止表示される変動表示中であれば、第1特別図柄表示器160における変動表示が一時的に中断されることとなる。 When the small win symbol is displayed as a stopped symbol on the first special symbol display 160 by the above process, a losing symbol is forcibly displayed as a stopped symbol on the second special symbol display 162. Also, when a small win symbol is displayed as a stopped symbol on the second special symbol display 162, if a big win symbol is being displayed as a stopped symbol on the first special symbol display 160 during a variable display in which the big win symbol is finally displayed as a stopped symbol on the first special symbol display 160, a losing symbol is forcibly displayed as a stopped symbol on the first special symbol display 160. On the other hand, when a small win symbol is displayed as a stopped symbol on the second special symbol display 162, if a small win symbol or a losing symbol is being displayed as a stopped symbol on the first special symbol display 160 during a variable display in which the small win symbol or a losing symbol is finally displayed as a stopped symbol on the first special symbol display 160, the variable display on the first special symbol display 160 is temporarily interrupted.

図43は、同時回し参考例に係る主制御基板300における特別図柄停止図柄表示処理を説明するフローチャートである。 Figure 43 is a flowchart explaining the special symbol stop symbol display process on the main control board 300 in the simultaneous rotation reference example.

(ステップS630-1)
メインCPU300aは、上記ステップS620-25でセットした特別遊技タイマのタイマ値が「0」でないかを判定する。その結果、特別遊技タイマのタイマ値が「0」ではないと判定した場合には当該特別図柄停止図柄表示処理を終了し、特別遊技タイマのタイマ値が「0」であると判定した場合にはステップS630-3に処理を移す。
(Step S630-1)
The main CPU 300a judges whether the timer value of the special game timer set in the above step S620-25 is "0". If it is judged that the timer value of the special game timer is not "0", the main CPU 300a ends the special symbol stop symbol display process, and if it is judged that the timer value of the special game timer is "0", the process proceeds to step S630-3.

(ステップS630-3)
メインCPU300aは、変動時間特殊停止フラグがオンであるかを判定する。その結果、変動時間特殊停止フラグがオンであると判定した場合にはステップS630-5に処理を移し、変動時間特殊停止フラグがオンでないと判定した場合には当該特別図柄停止図柄表示処理を終了する。
(Step S630-3)
The main CPU 300a judges whether the variable time special stop flag is on. If it is judged that the variable time special stop flag is on, the process proceeds to step S630-5, and if it is judged that the variable time special stop flag is not on, the process for displaying the special symbol stop symbol is terminated.

(ステップS630-5)
メインCPU300aは、大役抽選の結果を確認する。
(Step S630-5)
The main CPU 300a checks the result of the big role lottery.

(ステップS630-7)
メインCPU300aは、大役抽選の結果がハズレであるかを判定する。その結果、ハズレであると判定した場合にはステップS630-27に処理を移し、ハズレではないと判定した場合にはステップS630-9に処理を移す。
(Step S630-7)
The main CPU 300a judges whether the result of the big role lottery is a miss. If it is judged to be a miss, the process proceeds to step S630-27, and if it is judged not to be a miss, the process proceeds to step S630-9.

(ステップS630-9)
メインCPU300aは、遊技状態を更新する遊技状態更新処理を行う。ここでは、停止表示中の特別図柄が大当たり図柄である場合に遊技状態を初期状態に設定し、停止表示中の特別図柄が小当たり図柄である場合には、そのまま次の処理に移る。
(Step S630-9)
The main CPU 300a performs a game state update process to update the game state. Here, if the special symbol currently being stopped is a big win symbol, the game state is set to the initial state, and if the special symbol currently being stopped is a small win symbol, the game state proceeds directly to the next process.

(ステップS630-11)
メインCPU300aは、確定した特別図柄の種別に応じて、特別電動役物作動ラムセットテーブルのデータをセットする。なお、メインCPU300aは、変動時間特殊停止フラグがオンである場合にはオフにする。
(Step S630-11)
The main CPU 300a sets data in the special electric accessory operation RAM set table according to the type of the determined special symbol. Note that the main CPU 300a turns off the variable time special stop flag if it is on.

(ステップS630-13)
メインCPU300aは、特別電動役物最大作動回数設定処理を行う。具体的には、上記ステップS630-11でセットしたデータを参照し、特別電動役物最大作動回数カウンタに、カウンタ値として所定数(特別図柄の種別に対応するカウンタ値=ラウンド数)をセットする。なお、この特別電動役物最大作動回数カウンタは、これから開始する大役遊技において実行可能なラウンド数を示すものである。一方、メインRAM300cには、特別電動役物連続作動回数カウンタが設けられており、各ラウンド遊技の開始時に、特別電動役物連続作動回数カウンタのカウンタ値を「1」加算することで、現在のラウンド遊技数が管理される。ここでは、大役遊技の開始に伴って、この特別電動役物連続作動回数カウンタのカウンタ値をリセット(「0」に更新)する処理が併せて実行される。
(Step S630-13)
The main CPU 300a performs a process for setting the maximum number of times that the special electric role is operated. Specifically, the data set in step S630-11 is referred to, and a predetermined number (counter value corresponding to the type of special symbol=number of rounds) is set as a counter value in the maximum number of times that the special electric role is operated. The maximum number of times that the special electric role is operated indicates the number of rounds that can be executed in the big role game that is about to start. Meanwhile, the main RAM 300c is provided with a counter for the number of consecutive times that the special electric role is operated, and the current number of rounds is managed by adding "1" to the counter value of the counter for the number of consecutive times that the special electric role is operated at the start of each round game. Here, a process for resetting (updating to "0") the counter value of the counter for the number of consecutive times that the special electric role is operated is also executed with the start of the big role game.

(ステップS630-15)
メインCPU300aは、上記ステップS630-11でセットしたデータを参照し、特別電動役物遊技タイマに、タイマ値として所定のオープニング時間をセーブする。
(Step S630-15)
The main CPU 300a refers to the data set in step S630-11 and saves a predetermined opening time as a timer value in the special electric role play timer.

(ステップS630-17)
メインCPU300aは、大役遊技の開始を副制御基板330に伝達するためのオープニング指定コマンドを送信バッファにセットする。
(Step S630-17)
The main CPU 300a sets an opening designation command in the transmission buffer to transmit the start of the big prize game to the sub-control board 330.

(ステップS630-19)
メインCPU300aは、大役遊技を開始する場合には特別電動役物遊技管理フェーズを「01H」に更新し、小当たり遊技を開始する場合には特別電動役物遊技管理フェーズを「05H」に更新する。
(Step S630-19)
The main CPU 300a updates the special electric role game management phase to "01H" when starting a big win game, and updates the special electric role game management phase to "05H" when starting a small win game.

(ステップS630-21)
メインCPU300aは、特別遊技管理フェーズを「00H」に更新する。
(Step S630-21)
The main CPU 300a updates the special game management phase to "00H".

(ステップS630-23)
メインCPU300aは、上記ステップS630-19で更新した特別電動役物遊技管理フェーズが「01H」であるか、すなわち、大当たりかを判定する。その結果、特別電動役物遊技管理フェーズが「01H」であると判定した場合にはステップS630-25に処理を移し、特別電動役物遊技管理フェーズは「01H」ではないと判定した場合には、ステップS630-27に処理を移す。
(Step S630-23)
The main CPU 300a judges whether the special electric role game management phase updated in the above step S630-19 is "01H", that is, whether a jackpot has been reached. If it is judged that the special electric role game management phase is "01H", the process proceeds to step S630-25, and if it is judged that the special electric role game management phase is not "01H", the process proceeds to step S630-27.

(ステップS630-25)
メインCPU300aは、遊技情報出力端子板312から大当たり信号を出力するための大当たり信号出力開始処理を行い、当該特別図柄停止図柄表示処理を終了する。この処理により、大役遊技(オープニング)の開始に伴って大当たり信号が出力されることとなる。なお、遊技情報出力端子板312から出力される信号は複数設けられているが、ここでは、所定の大当たり信号についてのみ説明する。
(Step S630-25)
The main CPU 300a performs a jackpot signal output start process for outputting a jackpot signal from the game information output terminal board 312, and ends the special symbol stop symbol display process. This process causes a jackpot signal to be output with the start of the big win game (opening). Note that although multiple signals are provided to be output from the game information output terminal board 312, only a specific jackpot signal will be described here.

(ステップS630-27)
メインCPU300aは、特別図柄が確定したときの遊技状態を示す特図確定時遊技状態確認指定コマンドを送信バッファにセットする。
(Step S630-27)
The main CPU 300a sets in the transmission buffer a game state confirmation command at the time of special symbol determination, which indicates the game state when the special symbol is determined.

(ステップS630-29)
メインCPU300aは、時短終了フラグがオンしているかを判定する。上記したように、時短終了フラグは、時短遊技状態から非時短遊技状態に変更される際の変動開始時に、図40のステップS613-9においてオンされる。すなわち、ここで時短終了フラグがオンしている場合というのは、高確前兆状態における50回目もしくは100回目の変動開始時に、時短抜けによって、普通遊技状態が時短遊技状態から非時短遊技状態に変更された場合である。つまり、ここでは、時短抜け時の変動が終了するときに限り、時短終了フラグがオンしていると判定されることとなる。時短終了フラグがオンしていると判定した場合には、ステップS630-31に処理を移し、時短終了フラグはオンしていないと判定した場合にはステップS630-35に処理を移す。
(Step S630-29)
The main CPU 300a judges whether the time-saving end flag is on. As described above, the time-saving end flag is turned on in step S613-9 in FIG. 40 at the start of the fluctuation when changing from the time-saving game state to the non-time-saving game state. That is, the time-saving end flag is turned on here when the normal game state is changed from the time-saving game state to the non-time-saving game state due to the time-saving exit at the start of the 50th or 100th fluctuation in the high probability premonition state. That is, here, the time-saving end flag is judged to be on only when the fluctuation at the time of the time-saving exit ends. If it is judged that the time-saving end flag is on, the process moves to step S630-31, and if it is judged that the time-saving end flag is not on, the process moves to step S630-35.

(ステップS630-31)
メインCPU300aは、遊技情報出力端子板312から出力されている大当たり信号を停止するための大当たり信号出力停止処理を行う。すなわち、大当たり信号は、大役遊技中もしくは時短遊技状態中に出力されることとなる。
(Step S630-31)
The main CPU 300a performs a jackpot signal output stop process for stopping the jackpot signal output from the game information output terminal board 312. That is, the jackpot signal is output during a big win game or a time-saving game state.

(ステップS630-33)
メインCPU300aは、時短終了フラグをオフする。
(Step S630-33)
The main CPU 300a turns off the time-saving end flag.

(ステップS630-35)
メインCPU300aは、特別遊技管理フェーズを「00H」に更新し、当該特別図柄停止図柄表示処理を終了する。
(Step S630-35)
The main CPU 300a updates the special game management phase to "00H" and ends the special symbol stop symbol display process.

図44は、同時回し参考例に係る主制御基板300における特別電動役物遊技管理処理(ステップS700)を説明するフローチャートである。 Figure 44 is a flowchart explaining the special electric role play management process (step S700) in the main control board 300 in the simultaneous rotation reference example.

(ステップS700-1)
メインCPU300aは、特別電動役物遊技管理フェーズをロードする。
(Step S700-1)
The main CPU 300a loads the special electric role play management phase.

(ステップS700-3)
メインCPU300aは、上記ステップS700-1でロードした特別電動役物遊技管理フェーズが、「00H」であるかを判定する。すなわち、ここでは、現在、大役遊技中および小当たり遊技中でないかを判定することとなる。特別電動役物遊技管理フェーズが「00H」であると判定した場合には当該特別電動役物遊技管理処理を終了し、特別電動役物遊技管理フェーズが「00H」でないと判定した場合にはステップS700-5に処理を移す。
(Step S700-3)
The main CPU 300a judges whether the special electric role game management phase loaded in the above step S700-1 is "00H". That is, here, it is judged whether the big role game or the small role game is currently being played. If it is judged that the special electric role game management phase is "00H", the special electric role game management process is terminated, and if it is judged that the special electric role game management phase is not "00H", the process proceeds to step S700-5.

(ステップS700-5)
メインCPU300aは、上記ステップS700-1でロードした特別電動役物遊技管理フェーズに対応する特別電動役物遊技制御モジュールを選択する。
(Step S700-5)
The main CPU 300a selects the special electric role game control module corresponding to the special electric role game management phase loaded in the above step S700-1.

(ステップS700-7)
メインCPU300aは、上記ステップS700-5で選択した特別電動役物遊技制御モジュールをコールして処理を開始する。
(Step S700-7)
The main CPU 300a calls the special electric role game control module selected in step S700-5 and starts processing.

(ステップS700-9)
メインCPU300aは、特別電動役物遊技の制御時間を管理する特別電動役物遊技タイマをロードし、当該特別電動役物遊技管理処理を終了する。
(Step S700-9)
The main CPU 300a loads a special electric feature game timer that manages the control time of the special electric feature game, and ends the special electric feature game management process.

図45は、同時回し参考例に係る主制御基板300における大入賞口開放前処理を説明するフローチャートである。この大入賞口開放前処理は、特別電動役物遊技管理フェーズが「01H」、「05H」であった場合に実行される。 Figure 45 is a flow chart explaining the processing before the opening of the large prize opening in the main control board 300 in the simultaneous rotation reference example. This processing before the opening of the large prize opening is executed when the special electric role play management phase is "01H" or "05H".

(ステップS710-1)
メインCPU300aは、上記ステップS630-15等でセットした特別電動役物遊技タイマのタイマ値が「0」でないかを判定する。その結果、特別電動役物遊技タイマのタイマ値が「0」ではないと判定した場合には当該大入賞口開放前処理を終了し、特別電動役物遊技タイマのタイマ値が「0」であると判定した場合にはステップS710-3に処理を移す。
(Step S710-1)
The main CPU 300a judges whether the timer value of the special electric feature game timer set in the above step S630-15 is not "0". If it judges that the timer value of the special electric feature game timer is not "0", it ends the pre-opening process of the big prize opening, and if it judges that the timer value of the special electric feature game timer is "0", it moves the process to step S710-3.

(ステップS710-3)
メインCPU300aは、特別電動役物連続作動回数カウンタのカウンタ値を、現在のカウンタ値に「1」加算した値に更新する。
(Step S710-3)
The main CPU 300a updates the counter value of the special electric device continuous operation number counter to a value obtained by adding "1" to the current counter value.

(ステップS710-5)
メインCPU300aは、大入賞口の開放開始(ラウンド遊技の開始)を副制御基板330に伝達するための大入賞口開放指定コマンドを送信バッファにセットする。
(Step S710-5)
The main CPU 300a sets in the transmission buffer a command to specify opening of the large prize opening to transmit the start of opening of the large prize opening (start of a round of play) to the sub-control board 330.

(ステップS711)
メインCPU300aは、大入賞口開閉切替処理を実行する。この大入賞口開閉切替処理については後述する。
(Step S711)
The main CPU 300a executes a special prize opening/closing switching process, which will be described later.

(ステップS710-7)
メインCPU300aは、特別電動役物遊技管理フェーズを、現在の値に01Hを加算した値(「02H」または「06H」)に更新し、当該大入賞口開放前処理を終了する。
(Step S710-7)
The main CPU 300a updates the special electric device play management phase to a value obtained by adding 01H to the current value ("02H" or "06H"), and ends the pre-opening process for the large prize opening.

図46は、同時回し参考例に係る主制御基板300における大入賞口開閉切替処理(S711)を説明するフローチャートである。 Figure 46 is a flowchart explaining the large prize opening/closing switching process (S711) in the main control board 300 in the simultaneous rotation reference example.

(ステップS711-1)
メインCPU300aは、特別電動役物開閉切替回数カウンタのカウンタ値が、特別電動役物開閉切替回数(1回のラウンド遊技中における大入賞口の開閉回数)の上限値であるかを判定する。その結果、カウンタ値が上限値であると判定した場合には当該大入賞口開閉切替処理を終了し、カウンタ値は上限値ではないと判定した場合にはステップS711-3に処理を移す。
(Step S711-1)
The main CPU 300a judges whether the counter value of the special electric device opening/closing switching counter is the upper limit of the special electric device opening/closing switching count (the number of times the special winning hole is opened and closed during one round of play). If it is judged that the counter value is the upper limit, the special winning hole opening/closing switching process is terminated, and if it is judged that the counter value is not the upper limit, the process proceeds to step S711-3.

(ステップS711-3)
メインCPU300aは、特別電動役物作動ラムセットテーブルのデータを参照し、特別電動役物開閉切替回数カウンタのカウンタ値に基づいて、第1大入賞口ソレノイド126c、第2大入賞口ソレノイド128cを通電制御するためのソレノイド制御データ、および、通電時間もしくは通電停止時間であるタイムデータを抽出する。
(Step S711-3)
The main CPU 300a refers to the data in the special electric device operation RAM set table and extracts solenoid control data for controlling the energization of the first large prize opening solenoid 126c and the second large prize opening solenoid 128c, and time data which is the energization time or the de-energization time, based on the counter value of the special electric device opening/closing switching count counter.

(ステップS711-5)
メインCPU300aは、上記ステップS711-3で抽出したソレノイド制御データに基づいて、第1大入賞口ソレノイド126cまたは第2大入賞口ソレノイド128cの通電を開始するか、もしくは、通電を停止するための大入賞口ソレノイド通電制御処理を実行する。この大入賞口ソレノイド通電制御処理の実行により、上記ステップS400-33およびステップS400-35において、第1大入賞口ソレノイド126cまたは第2大入賞口ソレノイド128cの通電開始もしくは通電停止の制御がなされることとなる。
(Step S711-5)
The main CPU 300a executes a large prize opening solenoid energization control process to start or stop energization of the first large prize opening solenoid 126c or the second large prize opening solenoid 128c based on the solenoid control data extracted in step S711-3. By executing this large prize opening solenoid energization control process, the start or stop of energization of the first large prize opening solenoid 126c or the second large prize opening solenoid 128c is controlled in steps S400-33 and S400-35.

(ステップS711-7)
メインCPU300aは、上記ステップS711-3で抽出したタイムデータに基づくタイマ値を、特別電動役物遊技タイマにセーブする。なお、ここで特別電動役物遊技タイマにセーブされるタイマ値は、大入賞口の1回の最大開放時間となる。
(Step S711-7)
The main CPU 300a saves the timer value based on the time data extracted in step S711-3 in the special electric accessory game timer. The timer value saved in the special electric accessory game timer here is the maximum opening time of the big prize opening once.

(ステップS711-9)
メインCPU300aは、第1大入賞口ソレノイド126cまたは第2大入賞口ソレノイド128cの通電開始状態か、すなわち、上記ステップS711-5において、第1大入賞口ソレノイド126cまたは第2大入賞口ソレノイド128cの通電を開始する制御処理がなされたかを判定する。その結果、通電開始状態であると判定した場合にはステップS711-11に処理を移し、通電開始状態ではないと判定した場合には当該大入賞口開閉切替処理を終了する。
(Step S711-9)
The main CPU 300a judges whether the first large prize opening solenoid 126c or the second large prize opening solenoid 128c is in the energization start state, that is, whether the control process to start energization of the first large prize opening solenoid 126c or the second large prize opening solenoid 128c has been performed in the above step S711-5. If it is judged to be in the energization start state, the process proceeds to step S711-11, and if it is judged not to be in the energization start state, the large prize opening opening opening/closing switching process is terminated.

(ステップS711-11)
メインCPU300aは、特別電動役物開閉切替回数カウンタのカウンタ値を、現在のカウンタ値に「1」加算した値に更新し、当該大入賞口開閉切替処理を終了する。
(Step S711-11)
The main CPU 300a updates the counter value of the special electric device opening/closing switching count counter to a value obtained by adding "1" to the current counter value, and ends the large prize opening opening/closing switching process.

図47は、同時回し参考例に係る主制御基板300における大入賞口開放制御処理を説明するフローチャートである。この大入賞口開放制御処理は、特別電動役物遊技管理フェーズが「02H」、「06H」であった場合に実行される。 Figure 47 is a flowchart explaining the large prize opening control process in the main control board 300 in the simultaneous spin reference example. This large prize opening control process is executed when the special electric role play management phase is "02H" or "06H".

(ステップS720-1)
メインCPU300aは、上記ステップS711-7でセーブした特別電動役物遊技タイマのタイマ値が「0」でないかを判定する。その結果、特別電動役物遊技タイマのタイマ値が「0」ではないと判定した場合にはステップS720-5に処理を移し、特別電動役物遊技タイマのタイマ値が「0」であると判定した場合にはステップS720-3に処理を移す。
(Step S720-1)
The main CPU 300a judges whether the timer value of the special electric feature game timer saved in the above step S711-7 is 0. If it is judged that the timer value of the special electric feature game timer is not 0, the process proceeds to step S720-5, and if it is judged that the timer value of the special electric feature game timer is 0, the process proceeds to step S720-3.

(ステップS720-3)
メインCPU300aは、特別電動役物開閉切替回数カウンタのカウンタ値が、特別電動役物開閉切替回数の上限値であるかを判定する。その結果、カウンタ値が上限値であると判定した場合にはステップS720-7に処理を移し、カウンタ値は上限値ではないと判定した場合にはステップS711に処理を移す。
(Step S720-3)
The main CPU 300a judges whether the counter value of the special electric role opening/closing switching counter is the upper limit value of the special electric role opening/closing switching count. If it is judged that the counter value is the upper limit value, the process proceeds to step S720-7, and if it is judged that the counter value is not the upper limit value, the process proceeds to step S711.

(ステップS711)
上記ステップS720-3において、特別電動役物開閉切替回数カウンタのカウンタ値が、特別電動役物開閉切替回数の上限値ではないと判定した場合には、メインCPU300aは、上記ステップS711の処理を実行する。
(Step S711)
In the above step S720-3, if it is determined that the counter value of the special electric role opening/closing switching count counter is not the upper limit value of the special electric role opening/closing switching count, the main CPU 300a executes the processing of the above step S711.

(ステップS720-5)
メインCPU300aは、上記ステップS500-9で更新された大入賞口入賞球数カウンタのカウンタ値が規定数に到達していないか、すなわち、大入賞口に、1ラウンド中の最大入賞可能数と同数の遊技球が入球していないかを判定する。その結果、規定数に到達していないと判定した場合には当該大入賞口開放制御処理を終了し、規定数に到達したと判定した場合にはステップS720-7に処理を移す。
(Step S720-5)
The main CPU 300a judges whether the counter value of the large prize opening winning ball counter updated in the above step S500-9 has reached a specified number, that is, whether the number of game balls equal to the maximum number of winnings in one round has entered the large prize opening. If it is determined that the specified number has not been reached, the main CPU 300a ends the large prize opening opening opening control process, and if it is determined that the specified number has been reached, the process proceeds to step S720-7.

(ステップS720-7)
メインCPU300aは、第1大入賞口ソレノイド126cまたは第2大入賞口ソレノイド128cの通電を停止して大入賞口を閉鎖するために必要な大入賞口閉鎖処理を実行する。これにより、大入賞口は閉鎖状態となる。
(Step S720-7)
The main CPU 300a executes a large prize opening closing process required to close the large prize opening by stopping the energization of the first large prize opening solenoid 126c or the second large prize opening solenoid 128c. As a result, the large prize opening becomes closed.

(ステップS720-9)
メインCPU300aは、大入賞口閉鎖有効時間(インターバル時間)を特別電動役物遊技タイマにセーブする。
(Step S720-9)
The main CPU 300a saves the effective time (interval time) for closing the large prize opening in the special electric device play timer.

(ステップS720-11)
メインCPU300aは、特別電動役物遊技管理フェーズを、現在の値に01Hを加算した値(「03H」または「07H」)に更新する。
(Step S720-11)
The main CPU 300a updates the special electric role play management phase to a value obtained by adding 01H to the current value ("03H" or "07H").

(ステップS720-13)
メインCPU300aは、大入賞口が閉鎖されたことを示す大入賞口閉鎖指定コマンドを送信バッファにセットし、当該大入賞口開放制御処理を終了する。
(Step S720-13)
The main CPU 300a sets a special prize opening closure command, indicating that the special prize opening has been closed, in the transmission buffer, and ends the special prize opening opening control process.

図48は、同時回し参考例に係る主制御基板300における大入賞口閉鎖有効処理を説明するフローチャートである。この大入賞口閉鎖有効処理は、特別電動役物遊技管理フェーズが「03H」、「07H」であった場合に実行される。 Figure 48 is a flow chart explaining the large prize opening closure validity process in the main control board 300 in the simultaneous spin reference example. This large prize opening closure validity process is executed when the special electric role play management phase is "03H" or "07H".

(ステップS730-1)
メインCPU300aは、上記ステップS720-9でセーブした特別電動役物遊技タイマのタイマ値が「0」でないかを判定する。その結果、特別電動役物遊技タイマのタイマ値が「0」でないと判定した場合には当該大入賞口閉鎖有効処理を終了し、特別電動役物遊技タイマのタイマ値が「0」であると判定した場合にはステップS730-3に処理を移す。
(Step S730-1)
The main CPU 300a judges whether the timer value of the special electric feature game timer saved in the above step S720-9 is 0. If it is judged that the timer value of the special electric feature game timer is not 0, the main CPU 300a ends the large prize opening closure valid processing, and if it is judged that the timer value of the special electric feature game timer is 0, the processing proceeds to step S730-3.

(ステップS730-3)
メインCPU300aは、特別電動役物連続作動回数カウンタのカウンタ値が、特別電動役物最大作動回数カウンタのカウンタ値と一致するか、すなわち、予め設定された回数のラウンド遊技が終了したかを判定する。その結果、特別電動役物連続作動回数カウンタのカウンタ値が、特別電動役物最大作動回数カウンタのカウンタ値と一致すると判定した場合にはステップS730-9に処理を移し、一致しないと判定した場合にはステップS730-5に処理を移す。
(Step S730-3)
The main CPU 300a judges whether the counter value of the special electric device continuous operation counter matches the counter value of the special electric device maximum operation counter, that is, whether a preset number of rounds of play have been completed. If it is judged that the counter value of the special electric device continuous operation counter matches the counter value of the special electric device maximum operation counter, the process proceeds to step S730-9, and if it is judged that they do not match, the process proceeds to step S730-5.

(ステップS730-5)
メインCPU300aは、特別電動役物遊技管理フェーズを「01H」に更新する。なお、特別電動役物遊技管理フェーズが07Hである場合、すなわち、小当たり遊技の制御中は、小当たり遊技のラウンド遊技回数が「1」であることから、上記ステップS730-3で必ずYESと判定され、当該ステップに処理が移行することはない。
(Step S730-5)
The main CPU 300a updates the special electric accessory game management phase to "01H". In addition, when the special electric accessory game management phase is 07H, that is, during the control of the small win game, the number of rounds of the small win game is "1", so that the result is always YES in the above step S730-3, and the process does not proceed to the step.

(ステップS730-7)
メインCPU300aは、所定の大入賞口閉鎖時間を特別遊技タイマにセーブし、当該大入賞口閉鎖有効処理を終了する。これにより、次のラウンド遊技が開始されることとなる。
(Step S730-7)
The main CPU 300a saves the predetermined special prize opening closing time in the special game timer and ends the special prize opening closing validity process, thereby starting the next round of games.

(ステップS730-9)
メインCPU300aは、エンディング時間を特別電動役物遊技タイマにセーブするエンディング時間設定処理を実行する。
(Step S730-9)
The main CPU 300a executes an ending time setting process for saving the ending time in a special electric role play timer.

(ステップS730-11)
メインCPU300aは、特別電動役物遊技管理フェーズを、現在の値に01Hを加算した値(「04H」または「08H」)に更新する。
(Step S730-11)
The main CPU 300a updates the special electric role play management phase to a value obtained by adding 01H to the current value ("04H" or "08H").

(ステップS730-13)
メインCPU300aは、エンディングの開始を示すエンディング指定コマンドを送信バッファにセットし、当該大入賞口閉鎖有効処理を終了する。
(Step S730-13)
The main CPU 300a sets an ending designation command indicating the start of the ending in the transmission buffer, and ends the large prize opening closure activation process.

図49は、同時回し参考例に係る主制御基板300における大入賞口終了ウェイト処理を説明するフローチャートである。この大入賞口終了ウェイト処理は、特別電動役物遊技管理フェーズが「04H」、「08H」であった場合に実行される。 Figure 49 is a flow chart explaining the large prize opening end wait process in the main control board 300 in the simultaneous rotation reference example. This large prize opening end wait process is executed when the special electric role play management phase is "04H" or "08H".

(ステップS740-1)
メインCPU300aは、上記ステップS730-9でセーブした特別電動役物遊技タイマのタイマ値が「0」でないかを判定する。その結果、特別電動役物遊技タイマのタイマ値が「0」ではないと判定した場合には当該大入賞口終了ウェイト処理を終了し、特別電動役物遊技タイマのタイマ値が「0」であると判定した場合にはステップS740-3に処理を移す。
(Step S740-1)
The main CPU 300a judges whether the timer value of the special electric feature game timer saved in the above step S730-9 is not "0". As a result, if it is judged that the timer value of the special electric feature game timer is not "0", the main CPU 300a ends the large prize opening end wait process, and if it is judged that the timer value of the special electric feature game timer is "0", the process proceeds to step S740-3.

(ステップS740-3)
メインCPU300aは、特別電動役物遊技管理フェーズが「08H」であるか、すなわち、小当たり遊技の終了であるかを判定する。その結果、特別電動役物遊技管理フェーズが「08H」であると判定した場合にはステップS740-11に処理を移し、特別電動役物遊技管理フェーズは「08H」ではないと判定した場合にはステップS740-5に処理を移す。
(Step S740-3)
The main CPU 300a judges whether the special electric role game management phase is "08H", that is, whether the small win game has ended. If it is judged that the special electric role game management phase is "08H", the process proceeds to step S740-11, and if it is judged that the special electric role game management phase is not "08H", the process proceeds to step S740-5.

(ステップS740-5)
メインCPU300aは、大役遊技終了後の遊技状態を設定するための状態設定処理を実行する。ここでは、上記ステップS610-17で予備領域に設定した遊技状態や高確回数、時短回数をロードし、大役遊技後の遊技状態として各フラグの設定やカウンタ値をセットする。
(Step S740-5)
The main CPU 300a executes a state setting process to set the game state after the big win game ends. Here, the game state, the number of high probability games, and the number of time-saving games set in the preliminary area in the above step S610-17 are loaded, and the settings of each flag and the counter value are set as the game state after the big win game.

(ステップS740-7)
メインCPU300aは、上記ステップS740-5において、普通遊技状態が非時短遊技状態に設定されたかを判定する。その結果、非時短遊技状態に設定されたと判定した場合にはステップS740-9に処理を移し、非時短遊技状態に設定されていないと判定した場合にはステップS740-21に処理を移す。
(Step S740-7)
In step S740-5, the main CPU 300a judges whether the normal game state has been set to the non-time-saving game state. If it is judged that the normal game state has been set to the non-time-saving game state, the process proceeds to step S740-9. If it is judged that the normal game state has not been set to the non-time-saving game state, the process proceeds to step S740-21.

(ステップS740-9)
メインCPU300aは、遊技情報出力端子板312から出力されている大当たり信号を停止するための大当たり信号出力停止処理を行う。すなわち、大役遊技後に最優位状態に設定される場合には、大役遊技の終了とともに、大当たり信号の出力が停止されることとなる。
(Step S740-9)
The main CPU 300a performs a big win signal output stop process to stop the big win signal output from the game information output terminal board 312. That is, when the most advantageous state is set after the big win game, the output of the big win signal is stopped when the big win game ends.

(ステップS740-11)
メインCPU300aは、現在の遊技状態が高確前兆状態(高確率遊技状態かつ時短遊技状態)であるかを判定する。その結果、高確前兆状態であると判定した場合にはステップS740-13に処理を移し、高確前兆状態ではないと判定した場合にはステップS740-21に処理を移す。
(Step S740-11)
The main CPU 300a judges whether the current game state is a high probability premonition state (high probability game state and time-saving game state). If it is judged to be a high probability premonition state, the process proceeds to step S740-13, and if it is judged not to be a high probability premonition state, the process proceeds to step S740-21.

(ステップS740-13)
メインCPU300aは、停止表示された小当たり図柄が特別図柄Z1であるかを判定する。その結果、特別図柄Z1であると判定した場合にはステップS740-15に処理を移し、特別図柄Z1ではないと判定した場合にはステップS740-21に処理を移す。
(Step S740-13)
The main CPU 300a judges whether the stopped small winning symbol is the special symbol Z1. If it is judged to be the special symbol Z1, the process proceeds to step S740-15. If it is judged not to be the special symbol Z1, the process proceeds to step S740-21.

(ステップS740-15)
メインCPU300aは、普通遊技状態を非時短遊技状態に変更するべく、時短状態フラグをセットする。これにより、高確前兆状態において特別図柄Z1が決定された場合には、その小当たり遊技の終了時に、遊技状態が最優位状態に変更されることとなる。
(Step S740-15)
The main CPU 300a sets the time-saving state flag to change the normal game state to a non-time-saving game state. As a result, when the special symbol Z1 is determined in the high probability premonition state, the game state is changed to the most advantageous state at the end of the small win game.

(ステップS740-17)
メインCPU300aは、時短回数カウンタをリセットするカウンタリセット処理を行う。
(Step S740-17)
The main CPU 300a performs a counter reset process to reset the time-saving number counter.

(ステップS740-19)
メインCPU300aは、遊技情報出力端子板312から出力されている大当たり信号を停止するための大当たり信号出力停止処理を行う。すなわち、特別図柄Z1に当選して小当たり遊技後に最優位状態に設定される場合には、小当たり遊技の終了とともに、大当たり信号の出力が停止されることとなる。
(Step S740-19)
The main CPU 300a performs a big win signal output stop process to stop the big win signal output from the game information output terminal board 312. That is, when the special symbol Z1 is won and the most advantageous state is set after the small win game, the output of the big win signal is stopped when the small win game ends.

(ステップS740-21)
メインCPU300aは、大役遊技の終了後に設定される遊技状態を伝達するための遊技状態変化指定コマンドを送信バッファにセットする。
(Step S740-21)
The main CPU 300a sets in the transmission buffer a game state change designation command for transmitting the game state to be set after the big win game ends.

(ステップS740-23)
メインCPU300aは、高確回数、時短回数に対応する回数コマンドを送信バッファにセットする。
(Step S740-23)
The main CPU 300a sets a number command corresponding to the number of high probability times and the number of time reduction times in a transmission buffer.

(ステップS740-25)
メインCPU300aは、特別電動役物遊技管理フェーズを「00H」に更新し、当該大入賞口終了ウェイト処理を終了する。これにより、特1保留または特2保留が記憶されている場合には、図柄の変動表示が再開されることとなる。
(Step S740-25)
The main CPU 300a updates the special electric role play management phase to "00H" and ends the waiting process for the end of the special winning slot. As a result, if the special 1 reserve or special 2 reserve is stored, the variable display of the symbols will be resumed.

図50は、同時回し参考例に係る普通遊技管理フェーズを説明する図である。既に説明したとおり、同時回し参考例では、ゲート124への遊技球の通過もしくは普図作動口125への遊技球の入球を契機とする普通遊技に係る処理が、段階的に、かつ、繰り返し実行されるが、主制御基板300では、こうした普通遊技に係る各処理を普通遊技管理フェーズによって管理している。 Figure 50 is a diagram explaining the normal game management phase in the simultaneous play reference example. As already explained, in the simultaneous play reference example, the processing related to the normal game, which is triggered by the passage of the game ball through the gate 124 or the entry of the game ball into the normal play opening 125, is executed step by step and repeatedly, and the main control board 300 manages each processing related to such normal games by the normal game management phase.

図50に示すように、メインROM300bには、普通遊技を実行制御するための複数の普通遊技制御モジュールが格納されており、これら普通遊技制御モジュールごとに、普通遊技管理フェーズが対応付けられている。具体的には、普通遊技管理フェーズが「00H」である場合には、「普通図柄変動待ち処理」を実行するためのモジュールがコールされ、普通遊技管理フェーズが「01H」である場合には、「普通図柄変動中処理」を実行するためのモジュールがコールされ、普通遊技管理フェーズが「02H」である場合には、「普通図柄停止図柄表示処理」を実行するためのモジュールがコールされ、普通遊技管理フェーズが「03H」である場合には、「普通電動役物入賞口開放前処理」を実行するためのモジュールがコールされ、普通遊技管理フェーズが「04H」である場合には、「普通電動役物入賞口開放制御処理」を実行するためのモジュールがコールされ、普通遊技管理フェーズが「05H」である場合には、「普通電動役物入賞口閉鎖有効処理」を実行するためのモジュールがコールされ、普通遊技管理フェーズが「06H」である場合には、「普通電動役物入賞口終了ウェイト処理」を実行するためのモジュールがコールされる。 As shown in FIG. 50, the main ROM 300b stores multiple normal game control modules for controlling the execution of normal games, and each of these normal game control modules is associated with a normal game management phase. Specifically, when the normal game management phase is "00H", a module for executing "normal symbol change waiting process" is called, when the normal game management phase is "01H", a module for executing "normal symbol change process" is called, when the normal game management phase is "02H", a module for executing "normal symbol stop symbol display process" is called, when the normal game management phase is "03H", a module for executing "normal electric role winning opening pre-processing" is called, when the normal game management phase is "04H", a module for executing "normal electric role winning opening opening control process" is called, when the normal game management phase is "05H", a module for executing "normal electric role winning opening closing valid process" is called, when the normal game management phase is "06H", a module for executing "normal electric role winning opening end wait process" is called.

図51は、同時回し参考例に係る主制御基板300における普通遊技管理処理(ステップS800)を説明するフローチャートである。 Figure 51 is a flowchart explaining the normal game management process (step S800) in the main control board 300 in the simultaneous rotation reference example.

(ステップS800-1)
メインCPU300aは、普通遊技管理フェーズをロードする。
(Step S800-1)
The main CPU 300a loads the normal game management phase.

(ステップS800-3)
メインCPU300aは、上記ステップS800-1でロードした普通遊技管理フェーズに対応する普通遊技制御モジュールを選択する。
(Step S800-3)
The main CPU 300a selects the normal game control module corresponding to the normal game management phase loaded in step S800-1.

(ステップS800-5)
メインCPU300aは、上記ステップS800-3で選択した普通遊技制御モジュールをコールして処理を開始する。
(Step S800-5)
The main CPU 300a calls the normal game control module selected in step S800-3 above and starts processing.

(ステップS800-7)
メインCPU300aは、普通遊技の制御時間を管理する普通遊技タイマをロードする。
(Step S800-7)
The main CPU 300a loads a normal game timer that manages the control time of the normal game.

図52は、同時回し参考例に係る主制御基板300における普通図柄変動待ち処理を説明するフローチャートである。この普通図柄変動待ち処理は、普通遊技管理フェーズが「00H」であった場合に実行される。 Figure 52 is a flowchart explaining the normal symbol change waiting process in the main control board 300 in the simultaneous rotation reference example. This normal symbol change waiting process is executed when the normal game management phase is "00H".

(ステップS810-1)
メインCPU300aは、普通図柄保留球数カウンタのカウンタ値をロードし、カウンタ値が「0」であるか、すなわち、普図保留が「0」であるかを判定する。その結果、カウンタ値が「0」であると判定した場合には当該普通図柄変動待ち処理を終了し、カウンタ値は「0」ではないと判定した場合にはステップS810-3に処理を移す。
(Step S810-1)
The main CPU 300a loads the counter value of the normal symbol reserved ball number counter and judges whether the counter value is "0", that is, whether the normal symbol reserved is "0". If it is judged that the counter value is "0", the normal symbol change waiting process is terminated, and if it is judged that the counter value is not "0", the process proceeds to step S810-3.

(ステップS810-3)
メインCPU300aは、普図保留記憶領域の第1記憶部~第4記憶部に記憶されている普図保留(当たり決定乱数)を、1つ序数の小さい記憶部にブロック転送する。具体的には、第2記憶部~第4記憶部に記憶されている普図保留を、第1記憶部~第3記憶部に転送する。また、メインRAM300cには、処理対象となる第0記憶部が設けられており、第1記憶部に記憶されている普図保留を、第0記憶部に転送する。なお、この普通図柄記憶エリアシフト処理においては、普通図柄保留球数カウンタのカウンタ値を「1」減算するとともに、普図保留が「1」減算したことを示す、普図保留減指定コマンドを送信バッファにセットする。
(Step S810-3)
The main CPU 300a transfers the regular reserved balls (win-determining random numbers) stored in the first to fourth storage sections of the regular reserved ball storage area in blocks to the storage section with the next smaller ordinal number. Specifically, the regular reserved balls stored in the second to fourth storage sections are transferred to the first to third storage sections. The main RAM 300c is also provided with a 0th storage section to be processed, and the regular reserved balls stored in the 1st storage section are transferred to the 0th storage section. In addition, in this regular pattern storage area shift process, the counter value of the regular pattern reserved ball count counter is decremented by "1," and a regular reserved reduction command indicating that the regular reserved balls have been decremented by "1" is set in the transmission buffer.

(ステップS810-5)
メインCPU300aは、第0記憶部に転送された当たり決定乱数をロードし、現在の遊技状態に対応する当たり決定乱数判定テーブルを選択して普図抽選を行い、その抽選結果を記憶する普通図柄当たり判定処理を実行する。
(Step S810-5)
The main CPU 300a loads the winning determination random number transferred to the 0th memory unit, selects a winning determination random number judgment table corresponding to the current game state, performs a regular symbol lottery, and executes a regular symbol winning determination process that stores the lottery result.

(ステップS810-7)
メインCPU300aは、上記ステップS810-5の普図抽選の結果に対応する普通図柄停止図柄番号をセーブする。なお、同時回し参考例では、普通図柄表示器168は1つのLEDランプで構成されており、当たりの場合には普通図柄表示器168を点灯させ、ハズレの場合には普通図柄表示器168を消灯させる。ここで決定する普通図柄停止図柄番号は、最終的に普通図柄表示器168を点灯するか否かを示すものであり、例えば、当たりに当選した場合には、普通図柄停止図柄番号として「0」が決定され、ハズレの場合には、普通図柄停止図柄番号として「1」が決定される。
(Step S810-7)
The main CPU 300a saves the normal symbol stop symbol number corresponding to the result of the normal symbol lottery in step S810-5. In the simultaneous spin reference example, the normal symbol display 168 is composed of one LED lamp, and in the case of a win, the normal symbol display 168 is turned on, and in the case of a loss, the normal symbol display 168 is turned off. The normal symbol stop symbol number determined here indicates whether or not the normal symbol display 168 is ultimately turned on. For example, in the case of a win, "0" is determined as the normal symbol stop symbol number, and in the case of a loss, "1" is determined as the normal symbol stop symbol number.

(ステップS810-9)
メインCPU300aは、現在の遊技状態を確認し、対応する普通図柄変動時間データテーブルを選択してセットする。
(Step S810-9)
The main CPU 300a checks the current game state, and selects and sets the corresponding normal symbol variation time data table.

(ステップS810-11)
メインCPU300aは、上記ステップS810-3で第0記憶部に転送した当たり決定乱数と、上記ステップS810-9でセットした普通図柄変動時間データテーブルとに基づいて、普通図柄変動時間を決定する。
(Step S810-11)
The main CPU 300a determines the normal symbol variation time based on the winning determination random number transferred to the 0th memory unit in step S810-3 and the normal symbol variation time data table set in step S810-9.

(ステップS810-13)
メインCPU300aは、上記ステップS810-11で決定した普通図柄変動時間を普通遊技タイマにセーブする。
(Step S810-13)
The main CPU 300a saves the normal symbol variation time determined in the above step S810-11 in the normal game timer.

(ステップS810-15)
メインCPU300aは、普通図柄表示器168において、普通図柄の変動表示を開始するために、普通図柄表示図柄カウンタを設定する処理を実行する。この普通図柄表示図柄カウンタに、カウンタ値として例えば「0」が設定されている場合には普通図柄表示器168が点灯制御され、カウンタ値として「1」が設定されている場合には普通図柄表示器168が消灯制御される。ここでは、普通図柄の変動表示の開始時に所定のカウンタ値が普通図柄表示図柄カウンタに設定されることとなる。
(Step S810-15)
The main CPU 300a executes a process of setting a normal pattern display pattern counter in order to start the variable display of normal patterns in the normal pattern display 168. When the counter value is set to, for example, "0" in the normal pattern display pattern counter, the normal pattern display 168 is controlled to be turned on, and when the counter value is set to "1", the normal pattern display 168 is controlled to be turned off. Here, a predetermined counter value is set in the normal pattern display pattern counter at the start of the variable display of normal patterns.

(ステップS810-17)
メインCPU300aは、普図保留記憶領域に記憶されている普図保留数を示す普図保留指定コマンドを送信バッファにセットする。
(Step S810-17)
The main CPU 300a sets a regular map reservation designation command indicating the number of regular map reservations stored in the regular map reservation memory area in a transmission buffer.

(ステップS810-19)
メインCPU300aは、上記ステップS810-7で決定された普通図柄停止図柄番号、すなわち、普通図柄当たり判定処理によって決定された図柄種別(当たり図柄またはハズレ図柄)に基づいて、普通図柄指定コマンドを送信バッファにセットする。
(Step S810-19)
The main CPU 300a sets a normal pattern designation command in the transmission buffer based on the normal pattern stopping pattern number determined in step S810-7 above, i.e., the pattern type (winning pattern or losing pattern) determined by the normal pattern winning judgment process.

(ステップS810-21)
メインCPU300aは、普通遊技管理フェーズを「01H」に更新し、当該普通図柄変動待ち処理を終了する。
(Step S810-21)
The main CPU 300a updates the normal game management phase to "01H" and ends the normal pattern change waiting process.

図53は、同時回し参考例に係る主制御基板300における普通図柄変動中処理を説明するフローチャートである。この普通図柄変動中処理は、普通遊技管理フェーズが「01H」であった場合に実行される。 Figure 53 is a flowchart explaining the processing during normal symbol fluctuation in the main control board 300 in the simultaneous rotation reference example. This processing during normal symbol fluctuation is executed when the normal game management phase is "01H".

(ステップS820-1)
メインCPU300aは、上記ステップS810-13でセーブした普通遊技タイマのタイマ値が「0」であるかを判定する。その結果、タイマ値が「0」であった場合にはステップS820-9に処理を移し、タイマ値が「0」ではなかった場合にはステップS820-3に処理を移す。
(Step S820-1)
The main CPU 300a judges whether the timer value of the normal game timer saved in step S810-13 is "0". If the timer value is "0", the process proceeds to step S820-9. If the timer value is not "0", the process proceeds to step S820-3.

(ステップS820-3)
メインCPU300aは、普通図柄表示器168の点灯時間および消灯時間を計時する普通図柄表示タイマを更新する。具体的には、普通図柄表示タイマのタイマ値が「0」であった場合には、所定のタイマ値がセットされ、タイマ値が「1」以上であった場合には、現在のタイマ値から「1」減算した値にタイマ値を更新する。
(Step S820-3)
The main CPU 300a updates the normal symbol display timer that measures the light-on and light-off times of the normal symbol display 168. Specifically, if the timer value of the normal symbol display timer is "0", a predetermined timer value is set, and if the timer value is "1" or more, the timer value is updated to a value obtained by subtracting "1" from the current timer value.

(ステップS820-5)
メインCPU300aは、普通図柄表示タイマのタイマ値が「0」であるかを判定する。その結果、普通図柄表示タイマのタイマ値が「0」であると判定した場合にはステップS820-7に処理を移し、普通図柄表示タイマのタイマ値が「0」でないと判定した場合には当該普通図柄変動中処理を終了する。
(Step S820-5)
The main CPU 300a judges whether the timer value of the normal symbol display timer is "0". As a result, if it is judged that the timer value of the normal symbol display timer is "0", the process proceeds to step S820-7, and if it is judged that the timer value of the normal symbol display timer is not "0", the process during the normal symbol variation is terminated.

(ステップS820-7)
メインCPU300aは、普通図柄表示図柄カウンタのカウンタ値を更新する。ここでは、普通図柄表示図柄カウンタのカウンタ値が、普通図柄表示器168の消灯を示すカウンタ値であった場合には点灯を示すカウンタ値に更新し、普通図柄表示器168の点灯を示すカウンタ値であった場合には消灯を示すカウンタ値に更新し、当該普通図柄変動中処理を終了する。これにより、普通図柄表示器168は、普通図柄変動時間に亘って、所定時間おきに点灯、消灯を繰り返す(点滅する)こととなる。
(Step S820-7)
The main CPU 300a updates the counter value of the normal symbol display symbol counter. Here, if the counter value of the normal symbol display symbol counter is a counter value indicating that the normal symbol display 168 is turned off, it is updated to a counter value indicating that the normal symbol display 168 is turned on, and if the counter value is a counter value indicating that the normal symbol display 168 is turned on, it is updated to a counter value indicating that the normal symbol display 168 is turned off, and the normal symbol variation process is terminated. As a result, the normal symbol display 168 is turned on and off (blinks) at predetermined intervals over the normal symbol variation time.

(ステップS820-9)
メインCPU300aは、普通図柄表示図柄カウンタに、上記ステップS810-7で決定した普通図柄停止図柄番号(カウンタ値)をセーブする。これにより、普通図柄表示器168が最終的に点灯もしくは消灯制御され、普図抽選の結果が報知されることとなる。
(Step S820-9)
The main CPU 300a saves the normal symbol stop symbol number (counter value) determined in step S810-7 in the normal symbol display symbol counter. As a result, the normal symbol display 168 is finally controlled to be turned on or off, and the result of the normal symbol lottery is announced.

(ステップS820-11)
メインCPU300aは、普通図柄を停止表示する時間である普通図柄変動停止時間を普通遊技タイマにセットする。
(Step S820-11)
The main CPU 300a sets a normal pattern variation stop time, which is the time for stopping and displaying the normal pattern, in a normal game timer.

(ステップS820-13)
メインCPU300aは、普通図柄の停止表示が開始されたことを示す普図停止指定コマンドを送信バッファにセットする。
(Step S820-13)
The main CPU 300a sets a normal symbol stop command, which indicates that the stopped display of the normal symbols has begun, in the transmission buffer.

(ステップS820-15)
メインCPU300aは、普通遊技管理フェーズを「02H」に更新し、当該普通図柄変動中処理を終了する。
(Step S820-15)
The main CPU 300a updates the normal game management phase to "02H" and ends the normal pattern variation processing.

図54は、同時回し参考例に係る主制御基板300における普通図柄停止図柄表示処理を説明するフローチャートである。この普通図柄停止図柄表示処理は、普通遊技管理フェーズが「02H」であった場合に実行される。 Figure 54 is a flowchart explaining the normal symbol stop symbol display process in the main control board 300 in the simultaneous rotation reference example. This normal symbol stop symbol display process is executed when the normal game management phase is "02H".

(ステップS830-1)
メインCPU300aは、上記ステップS820-11でセットした普通遊技タイマのタイマ値が「0」でないかを判定する。その結果、普通遊技タイマのタイマ値が「0」ではないと判定した場合には当該普通図柄停止図柄表示処理を終了し、普通遊技タイマのタイマ値が「0」であると判定した場合にはステップS830-3に処理を移す。
(Step S830-1)
The main CPU 300a judges whether the timer value of the normal game timer set in the above step S820-11 is not "0". As a result, if it is judged that the timer value of the normal game timer is not "0", the normal symbol stop symbol display process is terminated, and if it is judged that the timer value of the normal game timer is "0", the process proceeds to step S830-3.

(ステップS830-3)
メインCPU300aは、普図抽選の結果を確認する。
(Step S830-3)
The main CPU 300a checks the result of the regular drawing.

(ステップS830-5)
メインCPU300aは、普図抽選の結果が当たりであるかを判定する。その結果、当たりであると判定した場合にはステップS830-9に処理を移し、当たりではない(ハズレである)と判定した場合にはステップS830-7に処理を移す。
(Step S830-5)
The main CPU 300a judges whether the result of the regular drawing is a win or not. If it is judged to be a win, the process proceeds to step S830-9, and if it is judged to be a no win (no win), the process proceeds to step S830-7.

(ステップS830-7)
メインCPU300aは、普通遊技管理フェーズを「00H」に更新し、当該普通図柄停止図柄表示処理を終了する。これにより、1の普図保留に基づく普通遊技管理処理が終了し、普図保留が記憶されている場合には、次の保留に基づく普通図柄の変動表示を開始するための処理が行われることとなる。
(Step S830-7)
The main CPU 300a updates the normal game management phase to "00H" and ends the normal stop symbol display process. This ends the normal game management process based on one normal symbol reservation, and if a normal symbol reservation is stored, processing is performed to start the variable display of the next reserved normal symbol.

(ステップS830-9)
メインCPU300aは、開閉制御パターンテーブルのデータを参照し、普通遊技タイマに、タイマ値として普電開放前時間をセーブする。
(Step S830-9)
The main CPU 300a refers to the data in the opening/closing control pattern table, and saves the time before normal power opening in the normal game timer as a timer value.

(ステップS830-11)
メインCPU300aは、普通遊技管理フェーズを「03H」に更新し、当該普通図柄停止図柄表示処理を終了する。これにより、第1可変始動口120Bの開閉制御が開始されることとなる。
(Step S830-11)
The main CPU 300a updates the normal game management phase to "03H" and ends the normal symbol stop symbol display process. This starts the opening and closing control of the first variable start opening 120B.

図55は、同時回し参考例に係る主制御基板300における普通電動役物入賞口開放前処理を説明するフローチャートである。この普通電動役物入賞口開放前処理は、普通遊技管理フェーズが「03H」であった場合に実行される。 Figure 55 is a flow chart explaining the processing before the opening of the winning opening of the normal electric device in the main control board 300 in the simultaneous rotation reference example. This processing before the opening of the winning opening of the normal electric device is executed when the normal game management phase is "03H".

(ステップS840-1)
メインCPU300aは、上記ステップS830-9でセットした普通遊技タイマのタイマ値が「0」でないかを判定する。その結果、普通遊技タイマのタイマ値が「0」ではないと判定した場合には当該普通電動役物入賞口開放前処理を終了し、普通遊技タイマのタイマ値が「0」であると判定した場合にはステップS841に処理を移す。
(Step S840-1)
The main CPU 300a judges whether the timer value of the normal game timer set in the above step S830-9 is "0". As a result, if it is judged that the timer value of the normal game timer is not "0", the normal electric role winning opening pre-opening process is terminated, and if it is judged that the timer value of the normal game timer is "0", the process proceeds to step S841.

(ステップS841)
メインCPU300aは、普通電動役物入賞口開閉切替処理を実行する。この普通電動役物入賞口開閉切替処理については後述する。
(Step S841)
The main CPU 300a executes a normal electric device prize opening opening/closing switching process, which will be described later.

(ステップS840-3)
メインCPU300aは、普通遊技管理フェーズを「04H」に更新し、当該普通電動役物入賞口開放前処理を終了する。
(Step S840-3)
The main CPU 300a updates the normal game management phase to "04H" and ends the processing before opening the normal electric device winning opening.

図56は、同時回し参考例に係る主制御基板300における普通電動役物入賞口開閉切替処理を説明するフローチャートである。 Figure 56 is a flowchart explaining the normal electric role winning opening/closing switching process in the main control board 300 for the simultaneous rotation reference example.

(ステップS841-1)
メインCPU300aは、普通電動役物開閉切替回数カウンタのカウンタ値が、普通電動役物開閉切替回数(1回の開閉制御中における第1可変始動口120Bの可動片120bの開閉回数)の上限値であるかを判定する。その結果、カウンタ値が上限値であると判定した場合には当該普通電動役物入賞口開閉切替処理を終了し、カウンタ値は上限値ではないと判定した場合にはステップS841-3に処理を移す。
(Step S841-1)
The main CPU 300a judges whether the counter value of the normal electric role opening/closing switching counter is the upper limit value of the normal electric role opening/closing switching count (the number of times the movable piece 120b of the first variable start port 120B is opened and closed during one opening/closing control). If it is judged that the counter value is the upper limit value, the normal electric role winning port opening/closing switching process is terminated, and if it is judged that the counter value is not the upper limit value, the process proceeds to step S841-3.

(ステップS841-3)
メインCPU300aは、開閉制御パターンテーブルのデータを参照し、普通電動役物開閉切替回数カウンタのカウンタ値に基づいて、普通電動役物ソレノイド120cを通電制御するためのソレノイド制御データ(通電制御データまたは通電停止制御データ)、および、普通電動役物ソレノイド120cの通電時間(ソレノイド通電時間)もしくは通電停止時間(普電閉鎖有効時間=休止時間)であるタイムデータを抽出する。
(Step S841-3)
The main CPU 300a refers to the data in the opening/closing control pattern table and extracts solenoid control data (energization control data or energization stop control data) for controlling the energization of the normal electric role solenoid 120c based on the counter value of the normal electric role opening/closing switching count counter, and time data which is the energization time (solenoid energization time) or energization stop time (normal electric closing effective time = pause time) of the normal electric role solenoid 120c.

(ステップS841-5)
メインCPU300aは、上記ステップS841-3で抽出したソレノイド制御データに基づいて、普通電動役物ソレノイド120cの通電を開始するか、もしくは、普通電動役物ソレノイド120cの通電を停止するための普通電動役物ソレノイド通電制御処理を実行する。この普通電動役物ソレノイド通電制御処理の実行により、上記ステップS400-33およびステップS400-35において、普通電動役物ソレノイド120cの通電開始もしくは通電停止の制御がなされることとなる。
(Step S841-5)
The main CPU 300a executes a normal electric role solenoid energization control process to start energizing the normal electric role solenoid 120c or to stop energizing the normal electric role solenoid 120c based on the solenoid control data extracted in the above step S841-3. By executing this normal electric role solenoid energization control process, the normal electric role solenoid 120c is controlled to start or stop energizing in the above step S400-33 and step S400-35.

(ステップS841-7)
メインCPU300aは、上記ステップS841-3で抽出したタイムデータに基づくタイマ値を、普通遊技タイマにセーブする。なお、ここで普通遊技タイマにセーブされるタイマ値は、第1可変始動口120Bの1回の最大開放時間となる。
(Step S841-7)
The main CPU 300a saves the timer value based on the time data extracted in step S841-3 in the normal game timer. The timer value saved in the normal game timer here is the maximum opening time of the first variable start port 120B once.

(ステップS841-9)
メインCPU300aは、普通電動役物ソレノイド120cの通電開始状態か、すなわち、上記ステップS841-5において、普通電動役物ソレノイド120cの通電を開始する制御処理がなされたかを判定する。その結果、通電開始状態であると判定した場合にはステップS841-11に処理を移し、通電開始状態ではないと判定した場合には当該普通電動役物入賞口開閉切替処理を終了する。
(Step S841-9)
The main CPU 300a judges whether the normal electric role solenoid 120c is in the energization start state, that is, whether the control process to start energization of the normal electric role solenoid 120c has been performed in the above step S841-5. As a result, if it is judged to be in the energization start state, the process proceeds to step S841-11, and if it is judged not to be in the energization start state, the normal electric role winning port opening/closing switching process is terminated.

(ステップS841-11)
メインCPU300aは、普通電動役物開閉切替回数カウンタのカウンタ値を、現在のカウンタ値に「1」加算した値に更新する。
(Step S841-11)
The main CPU 300a updates the counter value of the normal electric role opening/closing switching count counter to a value obtained by adding "1" to the current counter value.

図57は、同時回し参考例に係る主制御基板300における普通電動役物入賞口開放制御処理を説明するフローチャートである。この普通電動役物入賞口開放制御処理は、普通遊技管理フェーズが「04H」であった場合に実行される。 Figure 57 is a flowchart explaining the normal electric device prize opening control process in the main control board 300 for the simultaneous rotation reference example. This normal electric device prize opening control process is executed when the normal game management phase is "04H".

(ステップS850-1)
メインCPU300aは、上記ステップS841-7でセーブした普通遊技タイマのタイマ値が「0」でないかを判定する。その結果、普通遊技タイマのタイマ値が「0」ではないと判定した場合にはステップS850-5に処理を移し、普通遊技タイマのタイマ値が「0」であると判定した場合にはステップS850-3に処理を移す。
(Step S850-1)
The main CPU 300a judges whether the timer value of the normal game timer saved in the above step S841-7 is not "0". As a result, if it is judged that the timer value of the normal game timer is not "0", the process proceeds to step S850-5, and if it is judged that the timer value of the normal game timer is "0", the process proceeds to step S850-3.

(ステップS850-3)
メインCPU300aは、普通電動役物開閉切替回数カウンタのカウンタ値が、普通電動役物開閉切替回数の上限値であるかを判定する。その結果、カウンタ値が上限値であると判定した場合にはステップS850-7に処理を移し、カウンタ値は上限値ではないと判定した場合にはステップS841に処理を移す。
(Step S850-3)
The main CPU 300a judges whether the counter value of the normal electric role opening/closing switching counter is the upper limit value of the normal electric role opening/closing switching count. If it is judged that the counter value is the upper limit value, the process proceeds to step S850-7, and if it is judged that the counter value is not the upper limit value, the process proceeds to step S841.

(ステップS841)
上記ステップS850-3において、普通電動役物開閉切替回数カウンタのカウンタ値が、普通電動役物開閉切替回数の上限値ではないと判定した場合には、メインCPU300aは、上記ステップS841の処理を実行する。
(Step S841)
In the above step S850-3, if it is determined that the counter value of the normal electric role opening/closing switching count counter is not the upper limit value of the normal electric role opening/closing switching count, the main CPU 300a executes the processing of the above step S841.

(ステップS850-5)
メインCPU300aは、上記ステップS530-9で更新された普通電動役物入賞球数カウンタのカウンタ値が規定数に到達していないか、すなわち、第1可変始動口120Bに、1回の開閉制御中の最大入賞可能数と同数の遊技球が入球していないかを判定する。その結果、規定数に到達していないと判定した場合には当該普通電動役物入賞口開放制御処理を終了し、規定数に到達したと判定した場合にはステップS850-7に処理を移す。
(Step S850-5)
The main CPU 300a judges whether the counter value of the normal electric device winning ball counter updated in the above step S530-9 has reached a specified number, that is, whether the first variable start opening 120B has received the same number of game balls as the maximum number of winning balls during one opening/closing control. If it is determined that the specified number has not been reached, the normal electric device winning opening opening control process is terminated, and if it is determined that the specified number has been reached, the process proceeds to step S850-7.

(ステップS850-7)
メインCPU300aは、普通電動役物ソレノイド120cの通電を停止して第1可変始動口120Bを閉鎖するために必要な普通電動役物閉鎖処理を実行する。これにより、第1可変始動口120Bが閉鎖状態となる。
(Step S850-7)
The main CPU 300a executes a normal electric role closing process required to stop the power supply to the normal electric role solenoid 120c and close the first variable start port 120B. This causes the first variable start port 120B to be in a closed state.

(ステップS850-9)
メインCPU300aは、普電有効状態時間を普通遊技タイマにセーブする。
(Step S850-9)
The main CPU 300a saves the normal power effective state time in the normal game timer.

(ステップS850-11)
メインCPU300aは、普通遊技管理フェーズを「05H」に更新し、当該普通電動役物入賞口開放制御処理を終了する。
(Step S850-11)
The main CPU 300a updates the normal game management phase to "05H" and ends the normal electric device winning port opening control process.

図58は、同時回し参考例に係る主制御基板300における普通電動役物入賞口閉鎖有効処理を説明するフローチャートである。この普通電動役物入賞口閉鎖有効処理は、普通遊技管理フェーズが「05H」であった場合に実行される。 Figure 58 is a flow chart explaining the normal electric device prize opening closure enable processing in the main control board 300 relating to the simultaneous rotation reference example. This normal electric device prize opening closure enable processing is executed when the normal game management phase is "05H".

(ステップS860-1)
メインCPU300aは、上記ステップS850-9でセーブした普通遊技タイマのタイマ値が「0」でないかを判定する。その結果、普通遊技タイマのタイマ値が「0」ではないと判定した場合には当該普通電動役物入賞口閉鎖有効処理を終了し、普通遊技タイマのタイマ値が「0」であると判定した場合にはステップS860-3に処理を移す。
(Step S860-1)
The main CPU 300a judges whether the timer value of the normal game timer saved in the above step S850-9 is not "0". As a result, if it is judged that the timer value of the normal game timer is not "0", the normal electric role winning port closure valid processing is terminated, and if it is judged that the timer value of the normal game timer is "0", the processing proceeds to step S860-3.

(ステップS860-3)
メインCPU300aは、普電終了ウェイト時間を普通遊技タイマにセーブする。
(Step S860-3)
The main CPU 300a saves the normal power end wait time in the normal game timer.

(ステップS860-5)
メインCPU300aは、普通遊技管理フェーズを「06H」に更新し、当該普通電動役物入賞口閉鎖有効処理を終了する。
(Step S860-5)
The main CPU 300a updates the normal game management phase to "06H" and ends the normal electric device winning port closure validation processing.

図59は、同時回し参考例に係る主制御基板300における普通電動役物入賞口終了ウェイト処理を説明するフローチャートである。この普通電動役物入賞口終了ウェイト処理は、普通遊技管理フェーズが「06H」であった場合に実行される。 Figure 59 is a flow chart explaining the normal electric role winning slot end wait process in the main control board 300 in the simultaneous rotation reference example. This normal electric role winning slot end wait process is executed when the normal game management phase is "06H".

(ステップS870-1)
メインCPU300aは、上記ステップS860-3でセーブした普通遊技タイマのタイマ値が「0」でないかを判定する。その結果、普通遊技タイマのタイマ値が「0」ではないと判定した場合には当該普通電動役物入賞口終了ウェイト処理を終了し、普通遊技タイマのタイマ値が「0」であると判定した場合にはステップS870-3に処理を移す。
(Step S870-1)
The main CPU 300a judges whether the timer value of the normal game timer saved in the above step S860-3 is not "0". As a result, if it is judged that the timer value of the normal game timer is not "0", the normal electric role winning port end wait process is terminated, and if it is judged that the timer value of the normal game timer is "0", the process proceeds to step S870-3.

(ステップS870-3)
メインCPU300aは、普通遊技管理フェーズを「00H」に更新し、当該普通電動役物入賞口終了ウェイト処理を終了する。これにより、普図保留が記憶されている場合には、普通図柄の変動表示が再開されることとなる。次に、演出参考例として、上記した一種遊技機、一種二種遊技機、および、同時回し機において実行可能な具体的な演出や当該演出に係る具体的な処理を説明する。
(Step S870-3)
The main CPU 300a updates the normal game management phase to "00H" and ends the normal electric role winning port end wait process. As a result, if a normal symbol reservation is stored, the variable display of the normal symbol will be resumed. Next, as a reference example of the performance, specific performances that can be executed in the above-mentioned one-type gaming machine, one-type two-type gaming machine, and simultaneous spinning machine and specific processing related to the performance will be described.

<演出参考例>
図60は、演出参考例に係るリーチなし変動パターンの変動演出の一例を説明する図である。上記のように、主制御基板300において大役抽選が行われると、特別図柄の変動表示中、すなわち、特別図柄の変動時間に亘って、大役抽選の結果を報知する変動演出が実行される。この変動演出においては、メイン演出表示部200aにおいて種々の背景画像が表示されるとともに、この背景画像に重畳して、演出図柄210a、210b、210cが表示される。なお、変動演出中は、メイン演出表示部200aに表示される画像に伴って、音声出力装置206から音声が出力されるとともに、演出照明装置204が点灯制御され、また、演出役物装置202が可動制御されるが、ここでは詳細な説明は省略する。
<Example of performance>
FIG. 60 is a diagram for explaining an example of a variation performance of a no-reach variation pattern according to a reference performance example. As described above, when the main control board 300 performs a big role lottery, a variation performance is executed to notify the result of the big role lottery during the variation display of the special symbol, that is, during the variation time of the special symbol. In this variation performance, various background images are displayed on the main performance display unit 200a, and the performance symbols 210a, 210b, and 210c are displayed superimposed on the background images. During the variation performance, sound is output from the audio output device 206 in accordance with the image displayed on the main performance display unit 200a, and the performance lighting device 204 is controlled to light up, and the performance role device 202 is controlled to move, but detailed explanations are omitted here.

演出参考例に係る変動演出は、リーチなし変動パターン、リーチ変動パターンに大別される。リーチなし変動パターンの変動演出では、メイン演出表示部200aに背景画像(図示を省略)が表示されるとともに、この背景画像に演出図柄210a、210b、210cが重畳して変動表示される。例えば、図60(a)に示すように、大役抽選結果がハズレであったことを示す組み合わせで演出図柄210a、210b、210cが停止表示されているとする。この状態で、新たに特別図柄の変動表示が行われると、当該特別図柄の変動表示の開始に伴って、図60(b)に示すように、3つの演出図柄210a、210b、210cが変動表示(スクロール表示)を開始する。なお、図中下向きの白抜き矢印は、演出図柄210a、210b、210cが高さ方向にスクロール表示されていることを示している。 The variable performances in the reference performance examples are broadly divided into a no-reach variable pattern and a reach variable pattern. In the variable performance of the no-reach variable pattern, a background image (not shown) is displayed on the main performance display unit 200a, and the performance patterns 210a, 210b, and 210c are displayed in a variable manner superimposed on this background image. For example, as shown in FIG. 60(a), the performance patterns 210a, 210b, and 210c are displayed stationary in a combination that indicates that the big role lottery result was a miss. In this state, when a new special pattern is displayed, as the display of the special pattern starts, the three performance patterns 210a, 210b, and 210c start to display (scroll) as shown in FIG. 60(b). Note that the downward white arrow in the figure indicates that the performance patterns 210a, 210b, and 210c are displayed scrolling in the vertical direction.

そして、図60(c)に示すように、まず、演出図柄210aが停止表示され、その後、図60(d)に示すように、演出図柄210aと異なる演出図柄210cが停止表示される。そして、特別図柄の変動表示が終了して、第1特別図柄表示器160または第2特別図柄表示器162に特別図柄が停止表示するのとほぼ同じタイミングで、図60(e)に示すように、演出図柄210bが停止表示され、このときの3つの演出図柄210a、210b、210cの最終的な停止表示態様によって、大役抽選結果が遊技者に報知される。 Then, as shown in FIG. 60(c), first, the effect pattern 210a is displayed as a stopped pattern, and then, as shown in FIG. 60(d), the effect pattern 210c, which is different from the effect pattern 210a, is displayed as a stopped pattern. Then, at approximately the same timing as the special pattern stops being displayed as a stopped pattern on the first special pattern display device 160 or the second special pattern display device 162 after the variable display of the special pattern, the effect pattern 210b is displayed as a stopped pattern, as shown in FIG. 60(e), and the result of the big prize lottery is notified to the player based on the final stopped display state of the three effect patterns 210a, 210b, and 210c at this time.

図61は、演出参考例に係るノーマルリーチ変動パターンの変動演出の一例を説明する図である。演出参考例では、リーチ変動パターンが、ノーマルリーチ変動パターン、発展リーチ変動パターン、擬似連続リーチ変動パターンに大別される。ノーマルリーチ変動パターンの変動演出は、リーチなし変動パターンの変動演出と同様に、特別図柄の変動表示の開始に伴って、演出図柄210a、210b、210cの変動表示が開始され、図61(a)に示すように、演出図柄210aがまず停止表示される。その後、図61(b)に示すように、演出図柄210aと同一の演出図柄210cが停止表示される。 Figure 61 is a diagram for explaining an example of a normal reach fluctuation pattern fluctuation performance according to a performance reference example. In the performance reference example, the reach fluctuation pattern is broadly divided into a normal reach fluctuation pattern, an advanced reach fluctuation pattern, and a pseudo-continuous reach fluctuation pattern. In the normal reach fluctuation pattern fluctuation performance, similar to the non-reach fluctuation pattern fluctuation performance, the fluctuation display of the performance patterns 210a, 210b, and 210c begins with the start of the fluctuation display of the special pattern, and as shown in Figure 61 (a), the performance pattern 210a is first displayed frozen. After that, as shown in Figure 61 (b), the performance pattern 210c, which is the same as the performance pattern 210a, is displayed frozen.

このように、メイン演出表示部200aにおいて、同一の演出図柄210a、210cが停止表示されるリーチ態様で表示されると、図61(c)に示すように、メイン演出表示部200aにおいて、演出図柄210a、210cに重畳して「リーチ」と表示される。なお、リーチ態様は複数種類設けられており、「1」~「9」のいずれかの数字が記された同一の演出図柄210a、210cが停止表示される。その後、図61(d)に示すように、演出図柄210a、210cの形状を、リーチ態様になる前と異にして変動表示が継続される。そして、図61(e)に示すように、最終的に、演出図柄210a、210cと異なる演出図柄210bが停止表示され、大役抽選の結果がハズレであったことが遊技者に報知される。 In this way, when the same performance symbols 210a, 210c are displayed in a reach state in the main performance display section 200a, as shown in FIG. 61(c), "reach" is displayed superimposed on the performance symbols 210a, 210c in the main performance display section 200a. Note that there are multiple types of reach states, and the same performance symbols 210a, 210c with any of the numbers "1" to "9" written on them are displayed in a stopped state. After that, as shown in FIG. 61(d), the shape of the performance symbols 210a, 210c is changed from that before the reach state and the variable display continues. Then, as shown in FIG. 61(e), finally, a performance symbol 210b different from the performance symbols 210a, 210c is displayed in a stopped state, and the player is notified that the result of the big role lottery was a miss.

図62は、演出参考例に係るハズレ時の発展リーチ変動パターンの変動演出の一例を説明する図であり、図63は、演出参考例に係る大当たり時の発展リーチ変動パターンの変動演出の一例を説明する図である。発展リーチ変動パターンの変動演出は、図62(a)~(d)および図63(a)~(d)に示すように、ノーマルリーチ変動パターンの変動演出と同様に、メイン演出表示部200aにおいて、演出図柄210a、210cがリーチ態様で表示され、その後、所定の発展画像(動画)が再生表示されるリーチ発展演出が実行される。このリーチ発展演出では、例えば、図62(e)および図63(e)に示すように、メイン演出表示部200aにミッションが表示されるとともに、図62(f)、(g)および図63(f)、(g)に示すように、ミッションの達成に向けた画像が表示される。 Figure 62 is a diagram for explaining an example of the variation presentation of the development reach variation pattern at the time of a miss according to the performance reference example, and Figure 63 is a diagram for explaining an example of the variation presentation of the development reach variation pattern at the time of a big win according to the performance reference example. As shown in Figures 62(a)-(d) and 63(a)-(d), the variation presentation of the development reach variation pattern is similar to the variation presentation of the normal reach variation pattern, in which the performance patterns 210a and 210c are displayed in a reach state in the main performance display section 200a, and then a reach development presentation in which a predetermined development image (video) is played and displayed is executed. In this reach development presentation, for example, as shown in Figures 62(e) and 63(e), a mission is displayed on the main performance display section 200a, and as shown in Figures 62(f), (g) and 63(f), (g), an image toward the achievement of the mission is displayed.

ここで、リーチ発展演出用の発展画像は、ハズレパターンと大当たりパターンとに大別され、ハズレパターンの発展画像では、図62(h)に示すように、ミッションの失敗を示す画像が最終的に表示され、その後、図62(i)に示すように、演出図柄210a、210b、210cがハズレを報知する組み合わせで停止表示される。一方、大当たりパターンの発展画像では、図63(h)に示すように、ミッションの成功を示す画像が最終的に表示され、その後、図63(i)に示すように、演出図柄210a、210b、210cが大当たりを報知する組み合わせで停止表示される。 Here, the development images for reach development effects are broadly divided into miss patterns and big win patterns, and in the development image for the miss pattern, as shown in FIG. 62(h), an image indicating failure of the mission is finally displayed, and then, as shown in FIG. 62(i), the performance patterns 210a, 210b, and 210c are displayed in a stopped combination to indicate a miss. On the other hand, in the development image for the big win pattern, as shown in FIG. 63(h), an image indicating success of the mission is finally displayed, and then, as shown in FIG. 63(i), the performance patterns 210a, 210b, and 210c are displayed in a stopped combination to indicate a big win.

なお、リーチ発展演出は、例えば、上記のように、ミッションに挑む内容の発展画像が表示されるミッション演出と、味方キャラクタと敵キャラクタとが対戦する発展画像が表示されるバトル演出と、が設けられている。そして、ミッション演出は、ミッションの内容を異にする複数の実行パターンが設けられており、バトル演出は、登場キャラクタや対戦方法を異にする複数の実行パターンが設けられている。また、上記のように、ミッション演出の実行パターンは、ミッションを達成する大当たりパターンと、ミッションに失敗するハズレパターンとに大別されるが、バトル演出の実行パターンも同様に、味方キャラクタが敵キャラクタに勝利する大当たりパターンと、味方キャラクタが敵キャラクタに敗北するハズレパターンとに大別される。 The reach development effects include, for example, mission effects in which development images of mission challenges are displayed, and battle effects in which development images of friendly characters and enemy characters battling each other are displayed, as described above. The mission effects have multiple execution patterns with different mission contents, and the battle effects have multiple execution patterns with different characters appearing and fighting methods. As described above, the execution patterns of the mission effects are broadly divided into big win patterns in which the mission is accomplished and failure patterns in which the mission is failed, and the execution patterns of the battle effects are similarly broadly divided into big win patterns in which the friendly character triumphs over the enemy character and failure patterns in which the friendly character is defeated by the enemy character.

大当たりパターンとハズレパターンとは、演出の終盤までは同一内容で構成されており、最終的に味方キャラクタが勝利するか敗北するか、あるいは、ミッションを達成するか否かといった点を異にしている。したがって、リーチ発展演出中は、変動演出の終盤まで、大役抽選の結果を遊技者が識別することができず、遊技者に大当たりの期待感が付与されることとなる。 The big win pattern and the losing pattern are composed of the same content until the end of the performance, and differ in whether the friendly character ultimately wins or loses, or whether the mission is accomplished or not. Therefore, during the reach development performance, the player cannot distinguish the result of the big role lottery until the end of the variable performance, which gives the player a sense of expectation of a big win.

なお、大当たりパターンは、大役抽選の結果が大当たりであった場合にのみ選択され、ハズレパターンは、大役抽選の結果がハズレであった場合にのみ選択される。ただし、1回の変動演出において、リーチ発展演出が2回実行されることもあり、この場合には、1回目のリーチ発展演出がハズレパターンで実行され、2回目のリーチ発展演出が、ハズレパターンまたは大当たりパターンで実行される。以下に、1回の変動演出において、リーチ発展演出が2回実行される場合の演出の流れについて説明する。 The big win pattern is selected only if the big win lottery result is a big win, and the miss pattern is selected only if the big win lottery result is a miss. However, the reach development effect may be executed twice in one variable performance, in which case the first reach development effect is executed in a miss pattern, and the second reach development effect is executed in either a miss pattern or a big win pattern. The flow of the performance when the reach development effect is executed twice in one variable performance is explained below.

図64は、演出参考例に係るリーチ発展演出が2回実行される場合の変動演出の一例を説明する図である。例えば、演出図柄210a、210cがリーチ態様で表示された後、図64(a)、(b)に示すように、ミッション演出が実行されたとする。ここまでは、1回の変動演出においてリーチ発展演出が1回のみ実行される場合と相違はないが、ミッションを達成できなかったことが報知された直後に、図64(c)に示すように、メイン演出表示部200aに「REACH UP」と表示される。 Figure 64 is a diagram illustrating an example of a variable performance when the reach development performance relating to the reference performance example is executed twice. For example, after performance patterns 210a, 210c are displayed in a reach state, a mission performance is executed as shown in Figures 64(a) and (b). Up to this point, there is no difference from the case where the reach development performance is executed only once in one variable performance, but immediately after it is notified that the mission has not been completed, "REACH UP" is displayed on the main performance display section 200a as shown in Figure 64(c).

その後、メイン演出表示部200aには、図64(d)に示すように、バトル演出用の発展画像が表示されており、2回目のリーチ発展演出が開始される。このバトル演出用の発展画像は、味方キャラクタと敵キャラクタとが対戦する内容となっており、大当たり当選時には、図64(e)に示すように、最終的に味方キャラクタが敵キャラクタに勝利するとともに、図64(f)に示すように、演出図柄210a、210b、210cが大当たりを報知する組み合わせで停止表示される。一方、ハズレ時には、図64(g)に示すように、最終的に味方キャラクタが敵キャラクタに敗北するとともに、図64(h)に示すように、演出図柄210a、210b、210cがハズレを報知する組み合わせで停止表示される。 Then, as shown in FIG. 64(d), the main performance display section 200a displays a battle performance development image, and the second reach development performance starts. This battle performance development image shows a battle between an ally character and an enemy character, and when a jackpot is won, as shown in FIG. 64(e), the ally character finally wins against the enemy character, and as shown in FIG. 64(f), the performance symbols 210a, 210b, and 210c are displayed in a stopped combination to indicate a jackpot. On the other hand, when a loss occurs, as shown in FIG. 64(g), the ally character finally loses to the enemy character, and as shown in FIG. 64(h), the performance symbols 210a, 210b, and 210c are displayed in a stopped combination to indicate a loss.

図65は、演出参考例に係る擬似連続リーチ変動パターンの変動演出の一例を説明する図である。擬似連続リーチ変動パターンの変動演出は、図65(a)に示すように、演出図柄210a、210b、210cの変動表示が開始されると、図65(b)に示すように、演出図柄210a、210b、210cが、予め設けられた複数種類の擬似態様のうちのいずれかで仮停止表示される。この擬似態様は、例えば、同一の演出図柄210a、210bと、これら演出図柄210a、210bよりも、「2」大きな数字が記された演出図柄210cとが仮停止表示されるものである。 Figure 65 is a diagram for explaining an example of the pseudo-successive reach fluctuation pattern fluctuation performance according to the performance reference example. As shown in Figure 65 (a), when the display of the fluctuation of the performance patterns 210a, 210b, and 210c starts, the performance patterns 210a, 210b, and 210c are temporarily stopped and displayed in one of multiple types of pseudo patterns that have been set up in advance, as shown in Figure 65 (b). In this pseudo pattern, for example, the same performance patterns 210a and 210b and the performance pattern 210c with a number "2" larger than these performance patterns 210a and 210b are temporarily stopped and displayed.

演出図柄210a、210b、210cが擬似態様で仮停止表示されると、図65(c)に示すように、演出図柄210a、210b、210cの変動表示が再開される。つまり、擬似態様は、演出図柄210a、210b、210cの再変動表示を示すものと言える。その後、図65(d)に示すように、演出図柄210a、210b、210cが、再び擬似態様で仮停止表示される。 When the performance symbols 210a, 210b, and 210c are temporarily stopped in a pseudo mode, the display of the changing performance symbols 210a, 210b, and 210c is resumed, as shown in FIG. 65(c). In other words, the pseudo mode can be said to indicate a re-changing display of the performance symbols 210a, 210b, and 210c. After that, the performance symbols 210a, 210b, and 210c are temporarily stopped again in a pseudo mode, as shown in FIG. 65(d).

そして、図65(e)に示すように、演出図柄210a、210b、210cの変動表示が再開されると、図65(f)に示すように、演出図柄210a、210cがリーチ態様で表示され、以後、図65(g)~(i)に示すように、発展リーチ変動パターンと同様にリーチ発展演出が実行され、大役抽選の結果が遊技者に報知される。 Then, as shown in FIG. 65(e), when the display of the varying effect symbols 210a, 210b, and 210c resumes, as shown in FIG. 65(f), the effect symbols 210a and 210c are displayed in a reach state, and thereafter, as shown in FIG. 65(g)-(i), the reach development effect is executed in the same manner as the developed reach variation pattern, and the result of the big prize lottery is notified to the player.

このように、擬似連続リーチ変動パターンの変動演出は、演出図柄210a、210cがリーチ態様となるまでの内容が、発展リーチ変動パターンの変動演出と異なっており、リーチ態様となった後は、発展リーチ変動パターンと同様に変動演出が進行されることとなる。 In this way, the pseudo-continuous reach fluctuation pattern's fluctuation performance differs from that of the developed reach fluctuation pattern in the content until the performance patterns 210a, 210c reach the state, and after the state is reached, the fluctuation performance proceeds in the same way as the developed reach fluctuation pattern.

なお、擬似連続リーチ変動パターンにおいて、リーチ態様となるまでの演出図柄210a、210b、210cの変動表示パターンは複数パターン設けられており、変動表示パターンごとに、演出図柄210a、210b、210cの仮停止表示の回数、換言すれば、演出図柄210a、210b、210cの変動表示回数が異なっている。この変動表示パターンは、変動モードコマンドによって決定され、演出図柄210a、210b、210cの仮停止表示(変動表示)の回数が多くなるほど、最終的に大当たりの当選が報知される可能性(以下「信頼度」という)が高くなるように、大当たり当選時およびハズレ時における変動モードコマンドの選択比率が設定されている。 In addition, in the pseudo-continuous reach fluctuation pattern, a plurality of fluctuation display patterns of the performance symbols 210a, 210b, and 210c until the reach state is reached are provided, and the number of tentative stop displays of the performance symbols 210a, 210b, and 210c, in other words, the number of times that the performance symbols 210a, 210b, and 210c are displayed, differs for each fluctuation display pattern. This fluctuation display pattern is determined by the fluctuation mode command, and the selection ratio of the fluctuation mode command when the jackpot is won and when it is lost is set so that the more the number of tentative stop displays (fluctuation displays) of the performance symbols 210a, 210b, and 210c, the higher the possibility (hereinafter referred to as "reliability") that a jackpot will ultimately be announced.

具体的には、大役抽選の結果が大当たりであった場合には、変動表示回数の多い変動モードコマンドの選択比率が、変動表示回数の少ない変動モードコマンドの選択比率よりも高く設定されており、大役抽選の結果がハズレであった場合には、変動表示回数の少ない変動モードコマンドの選択比率が、変動表示回数の多い変動モードコマンドの選択比率よりも高く設定されている。 Specifically, if the result of the big role lottery is a big win, the selection ratio of the variable mode command with a large number of variable display counts is set higher than the selection ratio of the variable mode command with a small number of variable display counts, and if the result of the big role lottery is a loss, the selection ratio of the variable mode command with a small number of variable display counts is set higher than the selection ratio of the variable mode command with a large number of variable display counts.

また、主制御基板300においては、擬似連続リーチ変動パターンの信頼度が、発展リーチ変動パターンの信頼度よりも高くなるように設定されている。したがって、演出図柄210a、210b、210cの仮停止表示(変動表示)の回数によって信頼度が示唆されることとなり、遊技者は、演出図柄210a、210b、210cがより多く仮停止表示(変動表示)されることを期待しながら、演出の行方を見守ることとなる。 In addition, the main control board 300 is set so that the reliability of the pseudo-successive reach fluctuation pattern is higher than the reliability of the extended reach fluctuation pattern. Therefore, the reliability is indicated by the number of tentative stop displays (fluctuating displays) of the performance symbols 210a, 210b, and 210c, and the player will watch the progress of the performance while hoping for more tentative stop displays (fluctuating displays) of the performance symbols 210a, 210b, and 210c.

上記した変動演出の実行パターンは、主制御基板300で決定された変動コマンドに基づいて、副制御基板330において決定、実行制御される。つまり、変動演出の実行パターンは、主制御基板300と副制御基板330とで協働して決定されると言える。 The execution pattern of the above-mentioned variable performance is determined and controlled by the sub-control board 330 based on the variable command determined by the main control board 300. In other words, it can be said that the execution pattern of the variable performance is determined in cooperation between the main control board 300 and the sub-control board 330.

図66は、演出参考例に係る変動演出決定テーブルを説明する図であり、図66(a)には前半変動演出決定テーブルを示し、図66(b)には後半変動演出決定テーブルを示す。上記したように、主制御基板300において大役抽選が行われると、大役抽選の結果に基づいて、変動コマンドが決定され、決定された各コマンドが副制御基板330に送信される。副制御基板330においては、変動モードコマンドを受信すると、0~249の範囲から1の演出乱数を取得するとともに、前半変動演出決定テーブルを参照して、取得した演出乱数と、受信した変動モードコマンドとに基づいて、前半の変動演出の実行パターンを決定する。また、変動パターンコマンドを受信すると、0~249の範囲から1の演出乱数を取得するとともに、後半変動演出決定テーブルを参照して、取得した演出乱数と、受信した変動パターンコマンドとに基づいて、後半の変動演出の実行パターンを決定する。なお、図66においては、前半変動演出決定テーブルおよび後半変動演出決定テーブルの一部のみを抽出して示している。 Figure 66 is a diagram explaining the variable performance determination table related to the performance reference example, in which Figure 66 (a) shows the first half variable performance determination table, and Figure 66 (b) shows the second half variable performance determination table. As described above, when the main control board 300 performs a big role lottery, a variable command is determined based on the result of the big role lottery, and each determined command is sent to the sub-control board 330. When the sub-control board 330 receives a variable mode command, it obtains a random number of 1 from the range of 0 to 249, and refers to the first half variable performance determination table to determine the execution pattern of the variable performance of the first half based on the obtained random number and the received variable mode command. Also, when it receives a variable pattern command, it obtains a random number of 1 from the range of 0 to 249, and refers to the second half variable performance determination table to determine the execution pattern of the variable performance of the second half based on the obtained random number and the received variable pattern command. Note that Figure 66 shows only a part of the first half variable performance determination table and the second half variable performance determination table.

図66に示すように、前半変動演出決定テーブルによれば、変動モード番号(変動モードコマンド)ごとに、前半の変動演出の実行パターンについての選択比率がそれぞれ設定され、後半変動演出決定テーブルによれば、変動パターン番号(変動パターンコマンド)ごとに、後半の変動演出の実行パターンについての選択比率がそれぞれ設定されている。そして、決定された前半および後半の変動演出の実行パターンを組み合わせて実行することで、1回の変動演出が実行されることとなる。 As shown in FIG. 66, according to the first half variable performance decision table, a selection ratio for the execution pattern of the first half variable performance is set for each variable mode number (variation mode command), and according to the second half variable performance decision table, a selection ratio for the execution pattern of the second half variable performance is set for each variable pattern number (variation pattern command). Then, one variable performance is executed by combining and executing the execution patterns of the first and second half variable performances that have been determined.

リーチなし変動パターンの変動演出は、前半の実行パターンとして、前半の変動演出を実行しないことを示す「なし」が決定され、後半の実行パターンとして、リーチなし変動パターンに対応する「ノーマルハズレ1」、「ノーマルハズレ2」、「特殊ハズレ1」、「特殊ハズレ2」が決定された場合に実行される。例えば、前半の変動演出が実行されないことを示す「01H」の変動モード番号に対応する変動モードコマンドを受信すると、副制御基板330では、必ず、前半の実行パターンとして「なし」が決定される。また、このとき、同時に受信し得る変動パターンコマンドには、「ノーマルハズレ1」、「ノーマルハズレ2」、「特殊ハズレ1」、「特殊ハズレ2」のいずれかのみが決定されるように、後半変動演出決定テーブルにおいて選択比率の設定がなされている。したがって、前半の実行パターンとして「なし」が決定され、後半の実行パターンとして「ノーマルハズレ1」、「ノーマルハズレ2」、「特殊ハズレ1」、「特殊ハズレ2」が決定されることで、変動演出の実行パターンは、上記のリーチなし変動パターンに決定されることとなる。 The no-reach fluctuation pattern fluctuation performance is executed when "none" is determined as the execution pattern of the first half, indicating that the first half fluctuation performance is not executed, and "normal miss 1", "normal miss 2", "special miss 1", or "special miss 2" corresponding to the no-reach fluctuation pattern is determined as the execution pattern of the second half. For example, when a fluctuation mode command corresponding to the fluctuation mode number "01H", indicating that the first half fluctuation performance is not executed, is received, the sub-control board 330 always determines "none" as the execution pattern of the first half. In addition, at this time, the selection ratio is set in the second half fluctuation performance determination table so that only one of "normal miss 1", "normal miss 2", "special miss 1", or "special miss 2" is determined as the fluctuation pattern command that can be received at the same time. Therefore, by determining "none" as the execution pattern of the first half and determining "normal miss 1", "normal miss 2", "special miss 1", or "special miss 2" as the execution pattern of the second half, the execution pattern of the fluctuation performance is determined to be the no-reach fluctuation pattern described above.

一方、リーチ変動パターンの変動演出は、前半の実行パターンとして「なし」以外が決定され、後半の実行パターンとして、いずれかのリーチ発展演出(図中、発展1~5で示す)が決定された場合に実行される。換言すれば、メイン演出表示部200aにおいて、リーチ変動パターンの変動演出が実行される場合には、必ず、変動モード番号=01H以外の変動モード番号に対応する変動モードコマンドを受信しており、発展1~5のいずれかが決定される変動パターン番号に対応する変動パターンコマンドを受信していることとなる。 On the other hand, the reach fluctuation pattern fluctuation performance is executed when a pattern other than "none" is determined as the execution pattern for the first half, and one of the reach development performances (shown as developments 1 to 5 in the figure) is determined as the execution pattern for the second half. In other words, when the reach fluctuation pattern fluctuation performance is executed in the main performance display unit 200a, a fluctuation mode command corresponding to a fluctuation mode number other than the fluctuation mode number = 01H is always received, and a fluctuation pattern command corresponding to a fluctuation pattern number that determines one of developments 1 to 5 is received.

ここで、図66(a)において、前半の実行パターンにおける「ノーマルリーチ1」や「ノーマルリーチ2」等は、それぞれ、ノーマルリーチ変動パターンの変動演出のうち、演出図柄210a、210b、210cがリーチ態様になるまで、より詳細には、リーチ発展演出が開始されるまでの、メイン演出表示部200aに表示される背景画像や演出図柄210a、210b、210cの変動表示パターンを示している。これらの画像パターンは、変動モード番号に対応付けられた特別図柄の変動表示の時間と一致するように予め設計されており、例えば、「ノーマルリーチ1」が決定されると、図61(a)~(d)に示す画像がメイン演出表示部200aに表示されることとなる。 Here, in FIG. 66(a), "Normal Reach 1" and "Normal Reach 2" in the execution pattern of the first half respectively indicate the background image and the variable display pattern of the performance symbols 210a, 210b, 210c displayed on the main performance display section 200a until the performance symbols 210a, 210b, 210c reach the reach state, or more specifically, until the reach development performance begins, among the variable performances of the normal reach variable pattern. These image patterns are designed in advance to match the variable display time of the special symbol associated with the variable mode number, and for example, when "Normal Reach 1" is determined, the images shown in FIG. 61(a)-(d) will be displayed on the main performance display section 200a.

また、図66(a)において、前半の実行パターンにおける「擬似2a」等は、擬似連続リーチ変動パターンの変動演出のうち、リーチ発展演出が開始されるまでの、メイン演出表示部200aに表示される主変動演出画像の表示パターン、すなわち、演出図柄210a、210b、210cが変動表示される図柄表示演出の実行パターンを示している。例えば、「擬似2a」は、演出図柄210a、210b、210cの変動表示回数が2回である「擬似2」の擬似連続リーチ変動パターンであって、主変動演出画像が表示パターンaであることを示している。また、「擬似3b」は、演出図柄210a、210b、210cの変動表示回数が3回である「擬似3」の擬似連続リーチ変動パターンであって、主変動演出画像が表示パターンbであることを示している。 In addition, in FIG. 66(a), "pseudo 2a" and the like in the execution pattern in the first half indicate the display pattern of the main change performance image displayed on the main performance display unit 200a until the reach development performance starts, among the change performances of the pseudo continuous reach change pattern, that is, the execution pattern of the pattern display performance in which the performance patterns 210a, 210b, and 210c are displayed changeably. For example, "pseudo 2a" indicates that the pseudo continuous reach change pattern of "pseudo 2" in which the change display number of the performance patterns 210a, 210b, and 210c is two, and the main change performance image is display pattern a. Also, "pseudo 3b" indicates that the pseudo continuous reach change pattern of "pseudo 3" in which the change display number of the performance patterns 210a, 210b, and 210c is three, and the main change performance image is display pattern b.

なお、図66に示す前半変動演出決定テーブルおよび後半変動演出決定テーブルにおいては、リーチなし変動パターンおよびノーマルリーチ変動パターンの変動演出は、大役抽選の結果がハズレであった場合にのみ実行されるように、選択比率の設定がなされている。また、発展リーチ変動パターンおよび擬似連続リーチ変動パターンは、ハズレ時および大当たり時の双方で決定されるが、発展リーチ変動パターンは、擬似連続リーチ変動パターンよりも、ハズレ時の選択比率が高く、大当たり時の選択比率が低く設定されている。このように、ハズレ時と大当たり時とで選択比率を設定することにより、擬似連続リーチ変動パターンは、発展リーチ変動パターンよりも、信頼度が高く設定されることとなる。 In the first half variation presentation decision table and second half variation presentation decision table shown in FIG. 66, the selection ratio is set so that the variation presentation of the no-reach variation pattern and the normal reach variation pattern is executed only when the result of the big role lottery is a miss. Also, the developed reach variation pattern and the pseudo-continuous reach variation pattern are determined both when there is a miss and when there is a jackpot, but the selection ratio of the developed reach variation pattern is set higher when there is a miss and lower when there is a jackpot than the pseudo-continuous reach variation pattern. In this way, by setting the selection ratio when there is a miss and when there is a jackpot, the pseudo-continuous reach variation pattern is set to have a higher reliability than the developed reach variation pattern.

さらに、擬似連続リーチ変動パターンの中でも、擬似回数が多くなるほど、大当たり時の選択比率が高く、ハズレ時の選択比率が低く設定されており、擬似回数が多くなるほど、信頼度が高くなるように設定がなされている。 Furthermore, within the pseudo-sequential reach fluctuation pattern, the more the number of pseudos, the higher the selection rate for a big win and the lower the selection rate for a miss, so that the more the number of pseudos, the higher the reliability.

以上のように、変動演出決定テーブルにより、変動演出の大まかな流れが決定されるが、変動演出の開始時には、変動モードコマンドまたは変動パターンコマンドに基づいて、変動演出を構成するさまざまな要素演出の実行可否および実行パターンがさらに決定される。ここで、要素演出というのは、例えば、上記のように、メイン演出表示部200aにおける演出図柄210a、210b、210cの変動表示や、リーチ発展演出でメイン演出表示部200aに表示される発展画像、さらには、演出役物装置202を可動させる演出等、変動演出を構成する全ての演出をいう。実施例では、変動演出を構成する要素演出として、変動演出中のさまざまなタイミングで予告演出(示唆演出)が実行される。 As described above, the general flow of the variable performance is determined by the variable performance determination table, but at the start of the variable performance, the possibility of executing various element performances that make up the variable performance and the execution pattern are further determined based on the variable mode command or the variable pattern command. Here, element performance refers to all performances that make up the variable performance, such as the variable display of performance patterns 210a, 210b, and 210c on the main performance display unit 200a, the development image displayed on the main performance display unit 200a in the reach development performance, and even the performance that moves the performance role device 202, as described above. In the embodiment, preview performances (suggested performances) are executed at various times during the variable performance as element performances that make up the variable performance.

この予告演出というのは、変動演出の開始時や、擬似連続リーチ変動パターンの変動演出における演出図柄210a、210b、210cの再変動表示時、さらには、リーチ発展演出中等に、メイン演出表示部200aに所定の画像を表示したり、所定のタイミングで演出役物装置202を可動したりする演出であり、予告演出ごとに、その実行可否や実行パターンが決定される。各予告演出には、それぞれ実行パターンが複数種類設けられ、複数種類の実行パターンそれぞれについて、変動パターンコマンドや変動モードコマンドごとに、換言すれば、大当たりの当選可否ごとに選択比率が設定され、この選択比率によって、実行パターンごとに期待値が設定されている。 This preview performance is a performance in which a predetermined image is displayed on the main performance display unit 200a and the performance role device 202 is moved at a predetermined timing when the fluctuation performance starts, when the fluctuation patterns 210a, 210b, 210c are displayed again in the fluctuation performance of the pseudo continuous reach fluctuation pattern, and even during the reach development performance, and the possibility of execution and the execution pattern are determined for each preview performance. Each preview performance has multiple types of execution patterns, and for each of the multiple types of execution patterns, a selection ratio is set for each fluctuation pattern command or fluctuation mode command, in other words, for each possibility of winning the jackpot, and an expected value is set for each execution pattern based on this selection ratio.

以上説明したように、副制御基板330においては、変動コマンドを受信すると、変動演出の実行パターンや各要素演出の実行可否、実行パターンが決定され、特別図柄の変動表示中に変動演出が実行されることとなる。このように、変動演出は、1回の特別図柄の変動表示に対して1回行われるが、実施例では、複数回の特別図柄の変動表示に跨る演出も実行される。 As explained above, when the sub-control board 330 receives a variation command, it determines the execution pattern of the variation performance, whether each element performance can be executed, and the execution pattern, and the variation performance is executed while the special pattern is being displayed. In this way, the variation performance is executed once for each special pattern variable display, but in the embodiment, a performance spanning multiple special pattern variable displays is also executed.

図67は、演出参考例に係る保留表示演出の一例を説明する図である。メイン演出表示部200aの下部には保留表示領域211が設けられる。図60~図65では図示を省略したが、保留表示領域211は、変動演出中や遊技の待機中もメイン演出表示部200aに常時表示されている。そして、変動演出中は、この保留表示領域211において保留表示演出が行われる。保留表示演出では、大役抽選の際に処理領域(第0記憶部)に読み出された保留を示す当該保留表示212a、第1特図保留記憶領域の第1記憶部~第4記憶部に記憶されている保留をそれぞれ示す、第1保留表示212b、第2保留表示212c、第3保留表示212d、第4保留表示212eが保留表示領域211に表示される。なお、以下では、当該保留表示212aおよび第1保留表示212b~第4保留表示212eを総称して、保留表示212と呼ぶ。 Figure 67 is a diagram for explaining an example of a reserved display effect according to the reference example. A reserved display area 211 is provided at the bottom of the main effect display section 200a. Although not shown in Figures 60 to 65, the reserved display area 211 is always displayed on the main effect display section 200a even during variable effects and while waiting for a game. During variable effects, a reserved display effect is performed in this reserved display area 211. In the reserved display effect, the reserved display 212a indicating the reserved item read out to the processing area (zeroth memory section) during the big role lottery, the first reserved display 212b, the second reserved display 212c, the third reserved display 212d, and the fourth reserved display 212e indicating the reserved items stored in the first memory section to the fourth memory section of the first special chart reserved memory area, respectively, are displayed in the reserved display area 211. In the following, the reserved display 212a and the first reserved display 212b to the fourth reserved display 212e are collectively referred to as reserved display 212.

例えば、特別図柄の変動表示中であって、しかも、メインRAM300cに4つの特1保留が記憶されている場合には、図67(a)に示すように、当該保留表示212a、第1保留表示212b~第4保留表示212eの合計5つの保留表示212が保留表示領域211に表示される。そして、この状態から、特別図柄の変動表示が終了し、第1記憶部に記憶されている特1保留が処理領域(第0記憶部)に読み出されて大役抽選が行われるとともに、メインRAM300cの保留シフト処理が実行されると、図67(b)に示すように、当該保留表示212aが消去されるとともに、第1保留表示212b~第4保留表示212eが1つ左に移動表示される。また、さらにこの状態から次なる特1保留が読み出されると、図67(c)に示すように、さらに各保留表示212が移動表示される。このように、保留表示演出は、メインRAM300cに記憶されている特1保留数を遊技者に報知する演出となっている。 For example, when the special symbol is being displayed in a variable manner and four special 1 reserved symbols are stored in the main RAM 300c, the reserved symbol 212a and the first reserved symbol 212b to the fourth reserved symbol 212e, a total of five reserved symbols 212, are displayed in the reserved symbol display area 211 as shown in FIG. 67(a). Then, when the display of the special symbol is terminated from this state, the special 1 reserved symbol stored in the first memory unit is read into the processing area (the 0th memory unit) and a large role lottery is performed, and the reserved symbol shift processing of the main RAM 300c is executed, the reserved symbol 212a is erased and the first reserved symbol 212b to the fourth reserved symbol 212e are moved one position to the left as shown in FIG. 67(b). Furthermore, when the next special 1 reserved symbol is read from this state, each reserved symbol 212 is further moved as shown in FIG. 67(c). In this way, the reserved symbol display is a display that notifies the player of the number of special 1 reserved symbols stored in the main RAM 300c.

また、保留表示212の表示パターンは複数設けられており、表示パターンごとに表示色を異ならせている。主制御基板300においては、保留が記憶されたときに取得時演出判定処理(ステップS536)が実行され、新たに記憶された保留が第0記憶部に読み出された際に決定される変動情報を示す先読み指定コマンドを副制御基板330に送信する。副制御基板330においては、先読み指定コマンドを受信すると、当該受信コマンドに基づいて、新たに記憶された保留に対応する保留表示212の表示パターンを決定する。このとき、先読み指定コマンドごとに、つまり、新たに記憶された保留が大役抽選で読み出された際に決定される変動情報ごとに、各表示パターンの選択比率が設定されている。つまり、大当たりの当選可否や、変動演出の実行パターンに応じて各表示パターンの選択比率が設定されていることから、保留表示212の表示パターンによって、大当たりの信頼度(期待値)が示唆されることとなる。 In addition, multiple display patterns of the reserved display 212 are provided, and the display color is different for each display pattern. In the main control board 300, when a reserved is stored, the acquisition time performance determination process (step S536) is executed, and a look-ahead designation command indicating the variable information to be determined when the newly stored reserved is read out to the 0th storage unit is sent to the sub-control board 330. When the sub-control board 330 receives the look-ahead designation command, it determines the display pattern of the reserved display 212 corresponding to the newly stored reserved based on the received command. At this time, the selection ratio of each display pattern is set for each look-ahead designation command, that is, for each variable information to be determined when the newly stored reserved is read out in the big role lottery. In other words, since the selection ratio of each display pattern is set according to the possibility of winning a jackpot and the execution pattern of the variable performance, the display pattern of the reserved display 212 suggests the reliability (expected value) of the jackpot.

図68(a)は最終保留表示パターン決定テーブルを説明する図であり、図68(b)は1つ前保留表示パターン決定テーブルを説明する図である。上記したように、主制御基板300における取得時演出判定処理では、新たに記憶された保留が読み出された際に決定される変動モード番号および変動パターン番号を示す先読み指定コマンドを副制御基板330に送信する。つまり、先読み指定コマンドは、保留が読み出されたときに決定される変動モード番号および変動パターン番号を副制御基板330に伝達するコマンドである。最終保留表示パターン決定テーブルによれば、先読み指定コマンド(変動パターン番号)ごとに、保留表示212の表示パターンの選択比率がそれぞれ設定されており、先読み指定コマンドを受信すると、保留表示212の最終の表示パターン、すなわち、当該保留表示212aの最終的な表示パターンが決定される。 Figure 68 (a) is a diagram explaining the final pending display pattern determination table, and Figure 68 (b) is a diagram explaining the previous pending display pattern determination table. As described above, in the acquisition time performance determination process in the main control board 300, a look-ahead designation command indicating the variation mode number and variation pattern number to be determined when the newly stored pending is read out is sent to the sub-control board 330. In other words, the look-ahead designation command is a command that transmits the variation mode number and variation pattern number to be determined when the pending is read out to the sub-control board 330. According to the final pending display pattern determination table, the selection ratio of the display pattern of the pending display 212 is set for each look-ahead designation command (variation pattern number), and when a look-ahead designation command is received, the final display pattern of the pending display 212, i.e., the final display pattern of the pending display 212a, is determined.

図68(a)に示す最終保留表示パターン決定テーブルによれば、「デフォルト(白)」、「点滅」、「青」、「黄」、「緑」、「黒」「赤」、「プレミア(虹)」の8種類の表示パターンのいずれかが決定される。そして、当該保留表示212aの最終的な表示パターンが決定されると、それ以前に表示される保留表示212の表示パターンが、図68(b)に示す1つ前保留表示パターン決定テーブルを参照して決定される。この1つ前保留表示パターン決定テーブルによれば、保留表示212の表示パターンごとに、移動表示前に表示する保留表示212の表示パターンの選択比率が設定されている。 According to the final hold display pattern determination table shown in FIG. 68(a), one of eight display patterns is determined: "default (white)", "flashing", "blue", "yellow", "green", "black", "red", and "premium (rainbow)". Then, once the final display pattern of the hold display 212a is determined, the display pattern of the hold display 212 displayed before that is determined by referring to the previous hold display pattern determination table shown in FIG. 68(b). According to this previous hold display pattern determination table, a selection ratio of the display pattern of the hold display 212 to be displayed before the moving display is set for each display pattern of the hold display 212.

例えば、主制御基板300において、第1特図保留記憶領域の第2記憶部に保留が記憶された場合に、最終保留表示パターン決定テーブルを参照して、当該保留表示212aの最終的な表示パターンが決定されたとする。この場合には、次に、第1保留表示212bの表示パターンを、1つ前保留表示パターン決定テーブルを参照して決定する。このとき、第1保留表示212bの表示パターンは、先に決定された当該保留表示212aの最終的な表示パターンに基づいて決定される。例えば、当該保留表示212aの最終的な表示パターンが「青」であった場合、1つ前保留表示パターン決定テーブルによれば、第1保留表示212bの表示パターンとして、「点滅」が200/250の確率で決定され、「青」が50/250の確率で決定され。 For example, when a hold is stored in the second memory section of the first special chart hold memory area in the main control board 300, the final display pattern of the hold display 212a is determined by referring to the final hold display pattern determination table. In this case, the display pattern of the first hold display 212b is then determined by referring to the previous hold display pattern determination table. At this time, the display pattern of the first hold display 212b is determined based on the previously determined final display pattern of the hold display 212a. For example, if the final display pattern of the hold display 212a is "blue," then according to the previous hold display pattern determination table, the display pattern of the first hold display 212b is determined to be "blinking" with a probability of 200/250, and "blue" with a probability of 50/250.

このようにして、第1保留表示212bの表示パターンが決定されると、次に、先に決定された第1保留表示212bの表示パターンに基づいて、再び、1つ前保留表示パターン決定テーブルを参照して、第2保留表示212cの表示パターンが決定される。 Once the display pattern of the first hold display 212b is determined in this manner, the display pattern of the second hold display 212c is then determined based on the previously determined display pattern of the first hold display 212b, again by referring to the previous hold display pattern determination table.

以上のように、保留が記憶されると、まず、当該保留表示212aの最終的な表示パターンが決定され、その後、決定された当該保留表示212aの最終的な表示パターンに基づいて、第1保留表示212bの表示パターンが決定される等、表示順序を逆方向に遡るように、表示パターンが順次決定されることとなる。なお、1つ前保留表示パターン決定テーブルによれば、先に決定されている保留表示212の表示パターンと同じか、もしくは、信頼度の低い表示パターンのみが決定されるように、選択比率が設定されている。 As described above, when a hold is stored, first the final display pattern of the hold display 212a is determined, and then the display pattern of the first hold display 212b is determined based on the determined final display pattern of the hold display 212a, and so on, in a manner that works backwards in the display order to determine the display patterns. Note that, according to the previous hold display pattern determination table, the selection ratio is set so that only a display pattern that is the same as the previously determined hold display 212 display pattern or one with a low reliability is determined.

上記のように、保留表示演出では、保留表示212について、所定の遊技利益の付与に対する期待値が異なる複数の表示パターンが設けられている。そして、保留表示212は、メイン演出表示部200aに最初に表示されてから最終的に消去されるまでの間、1の表示パターンで表示される場合もあれば、表示期間中に表示パターンが変化する場合もある。 As described above, in the hold display presentation, multiple display patterns are provided for the hold display 212, each of which has a different expected value for the award of a predetermined gaming profit. From the time the hold display 212 is first displayed on the main presentation display section 200a until it is finally erased, the hold display 212 may be displayed in one display pattern, or the display pattern may change during the display period.

演出参考例において、保留表示212の表示パターンの変化が生じるタイミングは、新たに記憶された特1保留(以下、対象保留ともいう)が、第1保留表示212b~第3保留表示212dに移動表示されたタイミングと、対象保留に係る対象変動演出中とに大別される。 In the reference example, the timing when the display pattern of the hold display 212 changes can be broadly divided into when the newly stored special hold 1 (hereinafter also referred to as the target hold) is moved to the first hold display 212b to the third hold display 212d, and when the target change display related to the target hold is in progress.

次に、上記の変動演出を実行するための副制御基板330における処理について説明する。なお、以下では、副制御基板330における処理のうち、変動演出と関係のない処理については説明を省略する。 Next, we will explain the processing in the sub-control board 330 to execute the above-mentioned variable performance. Note that, in the following, we will omit explanations of the processing in the sub-control board 330 that is not related to the variable performance.

(副制御基板330のサブCPU初期化処理)
図69は、演出参考例に係る副制御基板330のサブCPU初期化処理(S1000)を説明するフローチャートである。
(Sub-CPU Initialization Processing of the Sub-Control Board 330)
FIG. 69 is a flowchart explaining the sub-CPU initialization process (S1000) of the sub-control board 330 relating to the reference example of performance.

(ステップS1000-1)
サブCPU330aは、電源投入に応じて、サブROM330bからCPU初期化処理プログラムを読み込むとともに、サブRAM330cに記憶されるフラグ等の初期化、設定処理を行う。
(Step S1000-1)
When the power is turned on, the sub-CPU 330a reads a CPU initialization processing program from the sub-ROM 330b, and initializes and sets flags and the like stored in the sub-RAM 330c.

(ステップS1000-3)
次に、サブCPU330aは、各演出乱数を更新する処理を行うとともに、以後は、割込み処理が行われるまで当該ステップS1000-3の処理を繰り返し行う。なお、演出乱数は複数種類設けられており、ここでは、それぞれの演出乱数が非同期的に更新されている。
(Step S1000-3)
Next, the sub-CPU 330a performs a process of updating each effect random number, and thereafter repeats the process of step S1000-3 until an interrupt process is performed. Note that multiple types of effect random numbers are provided, and here, each effect random number is updated asynchronously.

(副制御基板330のサブタイマ割込み処理)
図70は、演出参考例に係る副制御基板330のサブタイマ割込み処理(S1100)を説明するフローチャートである。副制御基板330には、所定の周期(1秒間に30回)でクロックパルスを発生するリセット用クロックパルス発生回路(不図示)が設けられている。そして、このリセット用クロックパルス発生回路によるクロックパルスの発生により、サブCPU330aはタイマ割込み処理プログラムを読み込んで当該サブタイマ割込み処理を開始する。
(Sub-timer interrupt processing of the sub-control board 330)
70 is a flow chart for explaining the sub timer interrupt process (S1100) of the sub control board 330 according to the reference example. The sub control board 330 is provided with a reset clock pulse generating circuit (not shown) that generates a clock pulse at a predetermined cycle (30 times per second). When the reset clock pulse generating circuit generates a clock pulse, the sub CPU 330a reads a timer interrupt process program and starts the sub timer interrupt process.

(ステップS1100-1)
サブCPU330aは、レジスタを退避する。
(Step S1100-1)
The sub CPU 330a saves the registers.

(ステップS1100-3)
サブCPU330aは、割込みを許可するための処理を行う。
(Step S1100-3)
The sub-CPU 330a performs processing for permitting an interrupt.

(ステップS1100-5)
サブCPU330aは、副制御基板330で用いられる各種タイマカウンタの更新処理を行う。ここで、各種タイマカウンタは、特に断る場合を除き、当該副制御基板330のサブタイマ割込み処理の度に1ずつ減算され、0になると減算を停止する。
(Step S1100-5)
The sub-CPU 330a performs update processing of various timer counters used in the sub-control board 330. Here, unless otherwise specified, the various timer counters are decremented by 1 each time the sub-timer interrupt processing of the sub-control board 330 is performed, and the decrement stops when the counter reaches 0.

(ステップS1200)
サブCPU330aは、サブRAM330cの受信バッファに格納されているコマンドを解析するとともに、受信したコマンドに応じた種々の処理を行う。副制御基板330においては、主制御基板300からコマンドが送信されると、コマンド受信割込み処理が行われ、主制御基板300から送信されたコマンドが受信バッファに格納される。ここでは、コマンド受信割込み処理によって受信バッファに格納されたコマンドを解析することとなる。
(Step S1200)
The sub-CPU 330a analyzes the command stored in the receive buffer of the sub-RAM 330c, and performs various processes according to the received command. When a command is transmitted from the main control board 300, the sub-control board 330 performs a command reception interrupt process, and the command transmitted from the main control board 300 is stored in the receive buffer. Here, the command stored in the receive buffer is analyzed by the command reception interrupt process.

(ステップS1100-7)
サブCPU330aは、タイムテーブルを参照して、当該タイムテーブルに記憶された該当時間に対応する処理を実行するタイムスケジュール管理処理を行う。ここでは、タイムテーブルにセットされたタイムデータに基づいて、各種のフラグをオン、オフしたり、あるいは、各演出デバイスにコマンドを送信したりすることで、変動演出や大役演出をはじめとする各演出の実行を制御することとなる。
(Step S1100-7)
The sub-CPU 330a performs a time schedule management process that refers to a time table and executes a process corresponding to the corresponding time stored in the time table. Here, based on the time data set in the time table, various flags are turned on or off, or commands are sent to each performance device, thereby controlling the execution of each performance, including the variable performance and the major role performance.

(ステップS1100-9)
サブCPU330aは、レジスタを復帰して当該サブタイマ割込み処理を終了する。
(Step S1100-9)
The sub-CPU 330a restores the registers and ends the sub-timer interrupt process.

図71は、上記コマンド解析処理のうち、先読み指定コマンドを受信した際に実行される演出参考例に係る先読み指定コマンド受信処理を説明するフローチャートである。上記したとおり、先読み指定コマンド(先読み指定変動パターンコマンド)は、主制御基板300において、取得時演出判定処理(図33のステップS536-21、ステップS536-25、ステップS536-27)でセットされた後、サブコマンド送信処理(図23のステップS100-65)によって副制御基板330に送信される。 Figure 71 is a flowchart explaining the look-ahead designation command reception process for the reference performance example that is executed when a look-ahead designation command is received, part of the command analysis process. As described above, the look-ahead designation command (look-ahead designation variable pattern command) is set in the main control board 300 in the performance determination process at the time of acquisition (steps S536-21, S536-25, and S536-27 in Figure 33), and then transmitted to the sub-control board 330 by the sub-command transmission process (step S100-65 in Figure 23).

(ステップS1210-1)
サブCPU330aは、まず、受信した先読み指定コマンドを解析する。
(Step S1210-1)
The sub-CPU 330a first analyzes the received read-ahead designation command.

(ステップS1210-3)
サブCPU330aは、上記ステップS1210-1の解析結果に基づいて、事前判定情報を記憶する。なお、副制御基板330のサブRAM330cには、主制御基板300の第1特図保留記憶領域に対応する第1事前判定情報記憶部と、第2特図保留記憶領域に対応する第2事前判定情報記憶部とが設けられている。第1事前判定情報記憶部は第1記憶部~第4記憶部の4つの記憶部を備えている。これら第1事前判定情報記憶部の第1記憶部~第4記憶部は、第1特図保留記憶領域の第1記憶部~第4記憶部にそれぞれ対応している。同様に、第2事前判定情報記憶部は第1記憶部~第4記憶部の4つの記憶部を備えており、これら第2事前判定情報記憶部の第1記憶部~第4記憶部は、第2特図保留記憶領域の第1記憶部~第4記憶部にそれぞれ対応している。ここでは、主制御基板300の第1特図保留記憶領域または第2特図保留記憶領域の第1記憶部~第4記憶部のうち、新たに保留が記憶された記憶部に対応する記憶部に事前判定情報が記憶される。
(Step S1210-3)
The sub-CPU 330a stores the advance judgment information based on the analysis result of the above step S1210-1. The sub-RAM 330c of the sub-control board 330 is provided with a first advance judgment information storage unit corresponding to the first special chart reserved storage area of the main control board 300, and a second advance judgment information storage unit corresponding to the second special chart reserved storage area. The first advance judgment information storage unit has four storage units, the first storage unit to the fourth storage unit. The first storage unit to the fourth storage unit of the first advance judgment information storage unit correspond to the first storage unit to the fourth storage unit of the first special chart reserved storage area, respectively. Similarly, the second advance judgment information storage unit has four storage units, the first storage unit to the fourth storage unit, and the first storage unit to the fourth storage unit of the second advance judgment information storage unit correspond to the first storage unit to the fourth storage unit of the second special chart reserved storage area, respectively. Here, the pre-determination information is stored in the memory section among the first to fourth memory sections of the first special chart reservation memory area or the second special chart reservation memory area of the main control board 300, which corresponds to the memory section in which the newly reserved data is stored.

(ステップS1210-5)
サブCPU330aは、保留表示212の最終の表示パターンを決定する最終保留表示パターン決定処理を行う。ここでは、受信した先読み指定コマンドに基づき、最終保留表示パターン決定テーブル(図68(a))を参照し、当該保留表示212aの最終の表示パターンを決定して記憶する。
(Step S1210-5)
The sub-CPU 330a performs a final hold display pattern determination process to determine the final display pattern of the hold display 212. Here, based on the received look-ahead designation command, the final hold display pattern determination table (FIG. 68(a)) is referenced, and the final display pattern of the hold display 212a is determined and stored.

(ステップS1210-7)
サブCPU330aは、保留が記憶された記憶部に基づいて、保留表示212の表示パターンを決定する回数、すなわち保留表示212の変化タイミングを導出し、導出した回数だけ、1つ前保留表示パターン決定テーブル(図68(b))を参照して、保留表示212の表示パターンを決定する。そして、決定した保留表示212の表示パターン情報を所定の記憶部に記憶し、ステップS1210-9に処理を移す。
(Step S1210-7)
The sub-CPU 330a derives the number of times to determine the display pattern of the reserved display 212, i.e., the change timing of the reserved display 212, based on the storage unit in which the reserved is stored, and determines the display pattern of the reserved display 212 by referring to the previous reserved display pattern determination table (FIG. 68(b)) for the derived number of times. Then, the display pattern information of the reserved display 212 thus determined is stored in a predetermined storage unit, and the process proceeds to step S1210-9.

(ステップS1210-9)
サブCPU330aは、上記ステップS1210-5およびステップS1210-7の決定に基づいて、保留表示212の表示を開始させる保留表示開始処理を行い、当該先読み指定コマンド受信処理を終了する。これにより、保留が記憶されたときに、対応する保留表示212の表示が開始されることとなる。
(Step S1210-9)
Based on the determinations in steps S1210-5 and S1210-7, the sub-CPU 330a performs a hold display start process to start displaying the hold display 212, and ends the read-ahead designation command reception process. As a result, when the hold is stored, the display of the corresponding hold display 212 is started.

図72は、演出参考例に係る上記コマンド解析処理のうち、変動コマンドを受信した際に実行される変動コマンド受信処理を説明するフローチャートである。上記したとおり、変動コマンドは、主制御基板300において、特別図柄変動番号決定処理(図39のステップS612-13、S612-17)でセットされた後、サブコマンド送信処理(図23のステップS100-65)によって副制御基板330に送信される。 Figure 72 is a flowchart explaining the variable command receiving process executed when a variable command is received, which is part of the command analysis process for the reference example. As described above, the variable command is set in the special symbol variable number determination process (steps S612-13, S612-17 in Figure 39) in the main control board 300, and then transmitted to the sub-control board 330 by the sub-command transmission process (step S100-65 in Figure 23).

(ステップS1220-1)
変動コマンドを受信すると、サブCPU330aは、まず、受信した変動パターンコマンドを解析して、記憶する。
(Step S1220-1)
When a variation command is received, the sub-CPU 330a first analyzes and stores the received variation pattern command.

(ステップS1220-3)
サブCPU330aは、上記ステップS1000-3で更新された演出乱数(0~249)を取得し、当該取得した演出乱数および上記ステップS1220-1における解析結果に基づいて、後半の変動演出の実行パターンを決定、記憶する。
(Step S1220-3)
The sub-CPU 330a acquires the performance random number (0 to 249) updated in the above step S1000-3, and determines and stores the execution pattern of the variable performance in the latter half based on the acquired performance random number and the analysis result in the above step S1220-1.

(ステップS1220-5)
サブCPU330aは、受信した変動モードコマンドを解析して、記憶する。
(Step S1220-5)
The sub-CPU 330a analyzes and stores the received variation mode command.

(ステップS1220-7)
サブCPU330aは、上記ステップS1000-3で更新された演出乱数(0~249)を取得し、当該取得した演出乱数および上記ステップS1220-5における解析結果に基づいて、前半の変動演出の実行パターンを決定、記憶する。
(Step S1220-7)
The sub-CPU 330a acquires the performance random number (0 to 249) updated in the above step S1000-3, and determines and stores the execution pattern of the variable performance for the first half based on the acquired performance random number and the analysis result in the above step S1220-5.

(ステップS1220-9)
サブCPU330aは、上記ステップS1000-3で更新された演出乱数(0~249)を予告演出ごとに取得し、当該取得した演出乱数および上記ステップS1220-1、ステップS1220-5における解析結果に基づいて、各予告演出決定テーブルを参照して、各予告演出の実行有無ならびに実行パターンを決定、記憶する。
(Step S1220-9)
The sub-CPU 330a obtains the performance random number (0 to 249) updated in step S1000-3 for each preview performance, and based on the obtained performance random number and the analysis results in steps S1220-1 and S1220-5, refers to each preview performance decision table to determine whether or not to execute each preview performance and the execution pattern, and stores the same.

(ステップS1220-11)
サブCPU330aは、事前判定情報記憶部に記憶されている事前判定情報をシフトするシフト処理を実行する。ここでは、特1保留に基づく変動演出を開始する場合には、第1事前判定情報記憶部の第4記憶部~第2記憶部に記憶されている事前判定情報を、それぞれ第1事前判定情報記憶部の第3記憶部~第1記憶部にシフトし、特2保留に基づく変動演出を開始する場合には、第2事前判定情報記憶部の第4記憶部~第2記憶部に記憶されている事前判定情報を、それぞれ第2事前判定情報記憶部の第3記憶部~第1記憶部にシフトする。
(Step S1220-11)
The sub-CPU 330a executes a shift process to shift the pre-determination information stored in the pre-determination information storage unit. Here, when starting a variable performance based on the special 1 reservation, the pre-determination information stored in the fourth storage unit to the second storage unit of the first pre-determination information storage unit is shifted to the third storage unit to the first storage unit of the first pre-determination information storage unit, respectively, and when starting a variable performance based on the special 2 reservation, the pre-determination information stored in the fourth storage unit to the second storage unit of the second pre-determination information storage unit is shifted to the third storage unit to the first storage unit of the second pre-determination information storage unit, respectively.

(ステップS1220-13)
サブCPU330aは、保留表示212を移動表示させる保留表示シフト処理を行う。また、ここでは、保留表示212の表示パターンが変化する場合には、所定のタイミングで表示パターンを変化させるための実行データをセットする。
(Step S1220-13)
The sub-CPU 330a performs a reservation display shift process to move and display the reservation display 212. In addition, here, when the display pattern of the reservation display 212 is to be changed, execution data for changing the display pattern at a predetermined timing is set.

(ステップS1220-15)
サブCPU330aは、上記各ステップの決定に基づいてタイムテーブルのタイムデータをセットして、当該変動コマンド受信処理を終了する。なお、ここでセットされたタイムテーブルに基づき、上記ステップS1100-7において、変動演出用の画像をメイン演出表示部200aに表示する処理や、音声出力処理、演出照明装置204の点灯制御処理等の演出実行制御がなされることとなる。
(Step S1220-15)
The sub-CPU 330a sets the time data of the time table based on the determination of each step above, and ends the variable command receiving process. Based on the time table set here, in the above step S1100-7, the process of displaying the image for the variable performance on the main performance display unit 200a, the sound output process, the lighting control process of the performance lighting device 204, and other performance execution control are performed.

<スロットマシン400>
図73および図74の外観図に示すように、遊技機としてのスロットマシン400は、前面が開口した筐体402と、筐体402の前面一端に回動可能に上下に並んで配置される前面上扉404および前面下扉406とが設けられている。前面上扉404の下部略中央には、ガラス板や透明樹脂板等で構成された無色透明の図柄表示窓408が設けられており、筐体402内の図柄表示窓408に対応する位置には、3つのリール410(左リール410a、中リール410b、右リール410c)が、それぞれ独立して回動可能に設けられている。左リール410a、中リール410b、右リール410cの外周面には、図75(a)の図柄配列に示すように、20に等分された各領域に複数種類の図柄がそれぞれ配列されており、遊技者は、図柄表示窓408を通じて、上段、中段、下段に位置する、左リール410a、中リール410b、右リール410cそれぞれの3つの連続する合計9個の図柄を視認することができる。
<Slot Machine 400>
As shown in the external views of Figures 73 and 74, a slot machine 400 as a gaming machine is provided with a housing 402 with an open front, and an upper front door 404 and a lower front door 406 which are rotatably arranged vertically side by side at one end of the front of the housing 402. A colorless and transparent symbol display window 408 made of a glass plate, a transparent resin plate or the like is provided at approximately the center of the lower part of the upper front door 404, and three reels 410 (left reel 410a, center reel 410b, right reel 410c) are provided at positions corresponding to the symbol display window 408 in the housing 402 so as to be rotatable independently of each other. As shown in the pattern arrangement in Figure 75 (a), multiple types of patterns are arranged in each of 20 equal areas on the outer peripheral surfaces of the left reel 410a, center reel 410b, and right reel 410c, and the player can view a total of nine patterns, three consecutive patterns located on the top, middle, and bottom rows of the left reel 410a, center reel 410b, and right reel 410c, through the pattern display window 408.

前面下扉406の上部には操作部設置台412が形成され、操作部設置台412には、メダル投入部414、ベットスイッチ416、スタートスイッチ418、ストップスイッチ420、演出スイッチ422等が設けられている。メダル投入部414は、メダル投入口414aを通じて遊技価値としてのメダルの投入を受け付ける。ベットスイッチ416は、スロットマシン400の内部に電気的に貯留(以下、単にクレジットという)されているメダルのうち、1遊技で必要とされる規定数のメダルを投入(ベット)する。 An operation unit installation stand 412 is formed on the top of the front lower door 406, and is provided with a medal insertion unit 414, a bet switch 416, a start switch 418, a stop switch 420, a performance switch 422, and the like. The medal insertion unit 414 accepts medals inserted as game value through a medal insertion port 414a. The bet switch 416 inserts (bet) a specified number of medals required for one game from among the medals electrically stored inside the slot machine 400 (hereinafter simply referred to as credits).

スタートスイッチ418は、例えば傾倒操作を検出可能なレバーで構成され、遊技者による遊技の開始操作を検出する。ストップスイッチ420(ストップスイッチ420a、ストップスイッチ420b、ストップスイッチ420c)は、左リール410a、中リール410b、右リール410cそれぞれに対応して設けられており、遊技者の停止操作を検出する。なお、ストップスイッチ420の停止操作が可能な状態で、遊技者が、ストップスイッチ420a、ストップスイッチ420b、ストップスイッチ420cのいずれかを最初に停止操作することを第1停止といい、第1停止の後、停止操作されていない2つのストップスイッチ420のいずれかを停止操作することを第2停止といい、第2停止の後、最後に残ったストップスイッチ420を停止操作することを第3停止という。演出スイッチ422は、例えば、押圧スイッチと、その周囲に回転自在に配されたジョグダイヤルスイッチとから構成され、遊技者の押圧操作や回転操作を検出する。 The start switch 418 is, for example, a lever that can detect tilting operation, and detects the start operation of the game by the player. The stop switches 420 (stop switch 420a, stop switch 420b, stop switch 420c) are provided corresponding to the left reel 410a, the center reel 410b, and the right reel 410c, respectively, and detect the stop operation by the player. Note that when the stop switch 420 can be stopped, the first stop is when the player operates one of the stop switches 420a, 420b, and 420c to stop, and after the first stop, the second stop is when the player operates one of the two stop switches 420 that have not been stopped, and after the second stop, the third stop is when the player operates the last remaining stop switch 420 to stop. The effect switch 422 is, for example, a push switch and a jog dial switch arranged around it so that it can rotate freely, and detects the push operation and rotation operation by the player.

前面上扉404の上部略中央には、演出に伴う様々な画像を表示する液晶表示部424が設けられている。また、前面上扉404の上部や左右には、例えば高輝度の発光ダイオード(LED)によって構成される演出用ランプ426が設けられる。また、前面上扉404の裏面における液晶表示部424の左右位置や前面下扉406の裏面における左右位置には、効果音や楽音等による聴覚的な演出を行うスピーカ428が設けられている。 A liquid crystal display unit 424 that displays various images associated with the performance is provided approximately in the center of the top of the upper front door 404. Performance lamps 426, for example consisting of high-brightness light-emitting diodes (LEDs), are provided at the top and left and right of the upper front door 404. Speakers 428 that provide auditory performances using sound effects, musical tones, etc. are provided at the left and right positions of the liquid crystal display unit 424 on the back surface of the upper front door 404 and at the left and right positions on the back surface of the lower front door 406.

操作部設置台412には、メインクレジット表示部430およびメイン払出表示部432が設けられている。また、図柄表示窓408と操作部設置台412との間には、サブクレジット表示部434およびサブ払出表示部436が設けられている。これらメインクレジット表示部430およびサブクレジット表示部434にはクレジットされているメダルの枚数(クレジット枚数)が表示され、メイン払出表示部432およびサブ払出表示部436にはメダルの払出枚数が表示される。 The operation unit installation stand 412 is provided with a main credit display unit 430 and a main payout display unit 432. In addition, a sub-credit display unit 434 and a sub-payout display unit 436 are provided between the symbol display window 408 and the operation unit installation stand 412. The main credit display unit 430 and the sub-credit display unit 434 display the number of medals credited (number of credits), and the main payout display unit 432 and the sub-payout display unit 436 display the number of medals paid out.

筐体402内におけるリール410の下方には、メダル排出口440aからメダルを払い出すためのメダル払出装置(メダルホッパー)442が設けられている。また、前面下扉406の前面下部には、メダル排出口440aから払い出されたメダルを貯留するための受け皿部440が設けられている。また、筐体402内には、電源スイッチ444が設けられている。電源スイッチ444は、スロットマシン400を管理する管理者が操作し、電源の切断状態と電源の投入状態の2つの状態を切り換えるために用いられる。 Below the reels 410 in the housing 402, a medal payout device (medal hopper) 442 is provided for paying out medals from a medal discharge port 440a. In addition, at the lower front part of the front lower door 406, a receiving tray 440 is provided for storing medals paid out from the medal discharge port 440a. Also, a power switch 444 is provided inside the housing 402. The power switch 444 is operated by an administrator who manages the slot machine 400, and is used to switch between two states: a power-off state and a power-on state.

また、筐体402内には、後述する主制御基板500に、図示しない設定ドアキーおよび設定変更スイッチ(これらを合わせて設定値設定手段という)が設けられている。スロットマシン400では、設定ドアキーに所定の鍵(操作キー)が挿入されてOFFの位置からONの位置へ回転された状態で電源スイッチ444を介して電源が投入されると設定変更モードに移行し、設定値の変更(単に設定変更ともいう)が可能な状態となる。設定値は、遊技者の有利度合(機械割)を段階的に示したものであり、例えば、1~6の6段階で表され、一般に、設定値の数値が大きいほど遊技全体として有利度合が高い(期待獲得枚数が高い)ように設定されている。そして、設定変更が可能な状態において設定変更スイッチが押下される度に設定値が1ずつ加算され、例えば、6段階の設定値のうちのいずれかの設定値に変更され、スタートスイッチ418が操作されると、設定値が確定し、設定ドアキーを元の位置(OFFの位置)に戻すことで設定変更モードが終了して遊技が可能となる。なお、設定変更は、電源スイッチ444が操作されて電源の投入状態となってから一定期間のみ可能となっている。 In addition, in the housing 402, a setting door key and a setting change switch (together referred to as a setting value setting means) (not shown) are provided on the main control board 500 described later. In the slot machine 400, when a predetermined key (operation key) is inserted into the setting door key and turned from the OFF position to the ON position, and the power is turned on via the power switch 444, the slot machine 400 transitions to a setting change mode, and the setting value can be changed (also simply referred to as a setting change). The setting value indicates the degree of advantage (machine odds) of the player in stages, and is expressed in six stages from 1 to 6, for example. In general, the setting value is set so that the higher the numerical value of the setting value, the higher the advantage in the game as a whole (the higher the expected number of coins to be won). Then, each time the setting change switch is pressed in a state in which the setting can be changed, the setting value is incremented by one, and the setting value is changed to one of the six setting values, for example, and when the start switch 418 is operated, the setting value is confirmed, and the setting door key is returned to its original position (OFF position), ending the setting change mode and allowing play. Note that settings can only be changed for a certain period of time after the power switch 444 is operated to turn on the power.

スロットマシン400では、遊技が開始可能となり、規定数のメダルがベットされると、有効ラインAが有効化するとともに、スタートスイッチ418に対する操作が有効となる。ここで、ベットは、ベットスイッチ416の操作を通じてクレジットされているメダルを投入する場合と、メダル投入部414を通じてメダルを投入する場合と、詳しくは後述するリプレイ役が有効ラインA上に表示されたことに基づいてメダルを自動投入する場合のいずれも含む。また、有効ラインAは、当選役の入賞を判定するためのラインであり、本実施形態では1本である。有効ラインAは、図75(b)に示すように、図柄表示窓408に臨む9つの図柄(3リール×上中下の3段)のうち、左リール410aの中段、中リール410bの中段、右リール410cの上段に停止する図柄に対応する位置を結んだラインに設定されている。無効ラインは、有効ラインA上に表示された図柄組み合わせのみでは当選役を把握しにくい場合に、当選役の把握を容易にする他の図柄組み合わせを表示する、当選役の入賞判定には用いられない有効ラインA以外のラインであり、本実施形態では、図75(b)に示す5つの無効ラインB1、B2、B3、C1、C2を想定している。 In the slot machine 400, when a game can be started and a specified number of medals are bet, the active line A is activated and the operation of the start switch 418 is activated. Here, the bet includes the case where the medals credited through the operation of the bet switch 416 are inserted, the case where the medals are inserted through the medal insertion section 414, and the case where the medals are automatically inserted based on the replay role displayed on the active line A, which will be described in detail later. The active line A is a line for determining the winning of the winning role, and in this embodiment, there is one line. As shown in FIG. 75(b), the active line A is set to a line connecting the positions corresponding to the symbols stopped in the middle row of the left reel 410a, the middle row of the middle reel 410b, and the top row of the right reel 410c among the nine symbols (three reels x three rows: top, middle, and bottom) facing the symbol display window 408. Invalid lines are lines other than the valid line A that are not used to determine whether a winning combination has been won, and which display other symbol combinations that make it easier to determine the winning combination when it is difficult to determine the winning combination based on the symbol combination displayed on the valid line A alone. In this embodiment, the five invalid lines B1, B2, B3, C1, and C2 shown in FIG. 75(b) are assumed.

そして、遊技者によりスタートスイッチ418が操作されると、遊技が開始され、左リール410a、中リール410b、右リール410cが回転されるとともに、当選種別抽選等が実行される。その後、ストップスイッチ420a、420b、420cの操作に応じて、対応する左リール410a、中リール410b、右リール410cをそれぞれ停止させる。そして、当選種別抽選の抽選結果および有効ラインAに表示された図柄の組み合わせによって、メダルの払い出しを受け得る当選役が入賞した場合にはメダルの払い出しが実行され、メダルの払い出しを受け得る当選種別に不当選であった場合または当選したが入賞しなかった場合には左リール410a、中リール410b、右リール410cが全て停止したことをもって、遊技が終了する。 When the player operates the start switch 418, the game begins, the left reel 410a, the center reel 410b, and the right reel 410c are spun, and a lottery for a winning type is executed. After that, the left reel 410a, the center reel 410b, and the right reel 410c are stopped according to the operation of the stop switches 420a, 420b, and 420c. Then, if a winning combination that can receive a medal payout is won based on the result of the lottery for a winning type and the combination of the symbols displayed on the active line A, the medal is paid out. If a winning combination that can receive a medal payout is not won or if a winning type that can receive a medal payout is won but not won, the game ends when the left reel 410a, the center reel 410b, and the right reel 410c all stop.

なお、本実施形態において、上記1遊技は、メダル投入部414を通じたメダルの投入、ベットスイッチ416の操作を通じたクレジットされているメダルの投入、または、リプレイ役が有効ラインA上に表示されたことに基づくメダルの自動投入のいずれかが行われてから、遊技者によるスタートスイッチ418の操作に応じて、左リール410a、中リール410b、右リール410cが回転制御されるとともに当選種別抽選が実行され、当選種別抽選の抽選結果および遊技者による複数のストップスイッチ420a、420b、420cの操作に応じて、操作されたストップスイッチ420a、420b、420cに対応する左リール410a、中リール410b、右リール410cがそれぞれ停止制御され、メダルの払い出しを受け得る当選役が入賞した場合、そのメダルの払い出しが実行されるまでの遊技をいう。また、メダルの払い出しを受け得る当選種別に不当選であった場合または当選したが入賞しなかった場合、左リール410a、中リール410b、右リール410cが全て停止したことをもって1遊技が終了する。ただし、1遊技の開始を、上記のメダルの投入、または、リプレイ役の当選の代わりに、遊技者によるスタートスイッチ418の操作と読み替えてもよい。また、かかる1遊技が繰り返される数を遊技数とする。 In this embodiment, the above-mentioned one game refers to a game from when a medal is inserted through the medal insertion section 414, when a credited medal is inserted through the operation of the bet switch 416, or when a medal is automatically inserted based on a replay role being displayed on the active line A, until the left reel 410a, middle reel 410b, and right reel 410c are controlled to rotate and a winning type lottery is executed in response to the player's operation of the start switch 418, and the left reel 410a, middle reel 410b, and right reel 410c corresponding to the operated stop switch 420a, 420b, 420c are controlled to stop in response to the result of the winning type lottery and the player's operation of the multiple stop switches 420a, 420b, and 420c, and if a winning role that may be awarded with a medal is won, the medal is paid out. In addition, if a player does not win a prize type that can receive a medal payout, or if a player wins but does not win a prize, one game ends when the left reel 410a, center reel 410b, and right reel 410c all come to a halt. However, the start of one game may be interpreted as the player operating the start switch 418 instead of the insertion of a medal or winning a replay role. The number of times such a game is repeated is defined as the number of games.

図76は、スロットマシン400の概略的な電気的構成を示したブロック図である。図76に示すように、スロットマシン400は、遊技の進行を制御する主制御基板500(主制御部)と、遊技の進行に応じた演出を制御する副制御基板502(副制御部)とを含む制御基板が設けられている。また、主制御基板500と副制御基板502との間の電気的な信号の伝達は、不正防止等の観点から、主制御基板500から副制御基板502への一方向のみに制限される。 Figure 76 is a block diagram showing the schematic electrical configuration of the slot machine 400. As shown in Figure 76, the slot machine 400 is provided with a control board including a main control board 500 (main control unit) that controls the progress of the game, and a sub-control board 502 (sub-control unit) that controls the presentation according to the progress of the game. In addition, the transmission of electrical signals between the main control board 500 and the sub-control board 502 is limited to one direction only, from the main control board 500 to the sub-control board 502, from the viewpoint of preventing fraud, etc.

(主制御基板500)
主制御基板500は、中央処理装置であるメインCPU500a、プログラム等が格納されたメインROM500b、ワークエリアとして機能するメインRAM500c等を含む半導体集積回路を有し、スロットマシン400全体を統括的に制御する。なお、メインRAM500cは、電源が切断された場合においても、設定変更が行われてRAMクリアが実行されない限り、データが消去されることなく保持される。
(Main control board 500)
The main control board 500 has semiconductor integrated circuits including a main CPU 500a which is a central processing unit, a main ROM 500b in which programs and the like are stored, and a main RAM 500c which functions as a work area, and generally controls the entire slot machine 400. Note that even if the power is cut off, the main RAM 500c retains data without erasing it, unless a setting change is made and the RAM is cleared.

また、主制御基板500は、メインCPU500aが、メインROM500bに格納されたプログラムに基づきメインRAM500cと協働することで機能する、初期化手段600、ベット手段602、当選種別抽選手段604、リール制御手段606、判定手段608、払出制御手段610、遊技状態制御手段612、演出状態制御手段614、コマンド送信手段616等の機能部を有する。 The main control board 500 also has functional units such as an initialization means 600, a betting means 602, a winning type selection means 604, a reel control means 606, a determination means 608, a payout control means 610, a game status control means 612, a presentation status control means 614, and a command transmission means 616, which function when the main CPU 500a cooperates with the main RAM 500c based on a program stored in the main ROM 500b.

主制御基板500では、メダル投入口414aへのメダルの投入を検出する投入メダル検出部414b、ベットスイッチ416、スタートスイッチ418およびストップスイッチ420a、420b、420cから各種の検出信号を受信しており、受信した検出信号に基づいて、メインCPU500aが種々の処理を実行する。 The main control board 500 receives various detection signals from the medal insertion detection unit 414b, which detects the insertion of medals into the medal insertion slot 414a, the bet switch 416, the start switch 418, and the stop switches 420a, 420b, and 420c, and the main CPU 500a executes various processes based on the received detection signals.

初期化手段600は、主制御基板500における初期化処理を実行する。ベット手段602は、遊技に使用するためのメダルをベットする。当選種別抽選手段604は、スタートスイッチ418の操作に基づき、詳しくは後述するように、当選役の当否、より詳しくは、当選役が含まれる当選種別の当否を決定する当選種別抽選を行う。 The initialization means 600 executes initialization processing on the main control board 500. The betting means 602 bets medals to be used in the game. The winning type selection means 604 performs a winning type selection based on the operation of the start switch 418, as will be described in detail later, to determine whether or not a winning role has been won, and more specifically, whether or not a winning type that includes a winning role has been won.

リール制御手段606は、スタートスイッチ418の操作に応じて、左リール410a、中リール410b、右リール410cを回転制御し、回転している左リール410a、中リール410b、右リール410cにそれぞれ対応したストップスイッチ420a、420b、420cの操作に応じて、対応する左リール410a、中リール410b、右リール410cを停止制御する。また、リール制御手段606は、スタートスイッチ418の操作に応じて、前回の遊技においてストップスイッチ420a、420b、420cの操作を有効化してから、当選種別抽選の抽選結果を表示するために遊技者によるストップスイッチ420a、420b、420cの操作を有効化するまで(前回の遊技におけるストップスイッチ420a、420b、420cの操作完了により無効化されている)の時間を規定の時間より延長し、その間、リール410a、410b、410cを多彩な態様で回転させるリール演出(フリーズ演出)を行う場合がある。リール演出は、本来有効となるべき任意のスイッチを所定時間有効にしなかったり、本来実行されるべき処理を所定時間保留したり、本来送受信されるべき任意のスイッチの信号を所定時間送信または受信させなかったりすることで実現できる。 The reel control means 606 controls the rotation of the left reel 410a, middle reel 410b, and right reel 410c in response to the operation of the start switch 418, and controls the stopping of the corresponding left reel 410a, middle reel 410b, and right reel 410c in response to the operation of the stop switches 420a, 420b, and 420c corresponding to the rotating left reel 410a, middle reel 410b, and right reel 410c, respectively. In addition, the reel control means 606 may extend the time from enabling the operation of the stop switches 420a, 420b, 420c in the previous game to enabling the operation of the stop switches 420a, 420b, 420c by the player to display the lottery result of the winning type lottery (disabled by completing the operation of the stop switches 420a, 420b, 420c in the previous game) to a specified time in response to the operation of the start switch 418, and during that time, perform a reel effect (freeze effect) in which the reels 410a, 410b, 410c are rotated in various ways. The reel effect can be realized by not enabling any switch that should be enabled for a specified time, suspending a process that should be executed for a specified time, or not transmitting or receiving a signal of any switch that should be transmitted or received for a specified time.

また、主制御基板500には、リール駆動制御部450が接続されている。このリール駆動制御部450は、スタートスイッチ418の操作信号に応じ、リール制御手段606から送信される、左リール410a、中リール410b、右リール410cの回転開始信号に基づいて、ステッピングモータ452を駆動する。また、リール駆動制御部450は、ストップスイッチ420の操作信号に応じ、リール制御手段606から送信される、左リール410a、中リール410b、右リール410cそれぞれの停止信号および回転位置検出回路454の検出信号に基づいて、ステッピングモータ452の駆動を停止する。 The reel drive control unit 450 is also connected to the main control board 500. This reel drive control unit 450 drives the stepping motor 452 based on the rotation start signal for the left reel 410a, center reel 410b, and right reel 410c sent from the reel control means 606 in response to the operation signal of the start switch 418. The reel drive control unit 450 also stops the driving of the stepping motor 452 based on the stop signal for each of the left reel 410a, center reel 410b, and right reel 410c and the detection signal of the rotation position detection circuit 454 sent from the reel control means 606 in response to the operation signal of the stop switch 420.

判定手段608は、当選役に対応する図柄組み合わせが有効ラインA上に表示されたか否か判定する。ここで、当選役に対応する図柄組み合わせが有効ラインA上に表示されることを単に入賞という場合がある。払出制御手段610は、当選役に対応する図柄組み合わせが有効ラインA上に表示されたこと(入賞したこと)に基づいて、当該当選役に対応する数(価値量)だけメダルを払い出す。また、主制御基板500には、メダル払出装置442が接続されており、払出制御手段610は、メダルの払出枚数を計数しながらメダルを排出する。 The determination means 608 determines whether or not a symbol combination corresponding to a winning role has been displayed on the pay line A. Here, the display of a symbol combination corresponding to a winning role on the pay line A may simply be referred to as winning. The payout control means 610 pays out medals in the number (value amount) corresponding to the winning role based on the fact that a symbol combination corresponding to a winning role has been displayed on the pay line A (winning). In addition, the medal payout device 442 is connected to the main control board 500, and the payout control means 610 dispenses medals while counting the number of medals paid out.

遊技状態制御手段612は、当選種別抽選の結果や判定手段608の判定結果を参照し、複数種類の遊技状態のいずれかに遊技状態を移行させる。また、演出状態制御手段614は、当選種別抽選の結果、判定手段608の判定結果、遊技状態の遷移情報を参照し、複数種類の演出状態のいずれかに演出状態を移行させる。 The game state control means 612 refers to the result of the winning type lottery and the judgment result of the judgment means 608, and transitions the game state to one of multiple game states. The presentation state control means 614 refers to the result of the winning type lottery, the judgment result of the judgment means 608, and transition information of the game state, and transitions the presentation state to one of multiple presentation states.

コマンド送信手段616は、ベット手段602、当選種別抽選手段604、リール制御手段606、判定手段608、払出制御手段610、遊技状態制御手段612、演出状態制御手段614等の動作に伴う、遊技に関するコマンドを順次決定し、決定したコマンドを副制御基板502に順次送信する。 The command transmission means 616 sequentially determines game-related commands associated with the operation of the betting means 602, the winning type selection means 604, the reel control means 606, the determination means 608, the payout control means 610, the game state control means 612, the presentation state control means 614, etc., and sequentially transmits the determined commands to the sub-control board 502.

また、主制御基板500には、乱数発生器(乱数生成手段)500dが設けられる。乱数発生器500dは、計数値を順次インクリメントし、所定の数値範囲内でループさせ、所定の時点における計数値を抽出することで乱数を得る。主制御基板500の乱数発生器500dによって生成される乱数(以下、当選種別抽選乱数という)は、遊技者に付与する遊技利益、例えば、当選種別抽選手段604が当選種別を決定するために用いられる。 The main control board 500 is also provided with a random number generator (random number generating means) 500d. The random number generator 500d sequentially increments the count value, loops it within a predetermined numerical range, and extracts the count value at a predetermined point in time to obtain a random number. The random number generated by the random number generator 500d of the main control board 500 (hereinafter referred to as the winning type lottery random number) is used to determine the gaming benefit to be awarded to the player, for example, the winning type by the winning type lottery means 604.

(副制御基板502)
また、副制御基板502は、主制御基板500と同様に、中央処理装置であるサブCPU502a、プログラム等が格納されたサブROM502b、ワークエリアとして機能するサブRAM502c等を含む各種半導体集積回路を有し、主制御基板500からのコマンドに基づき、特に演出を制御する。また、サブRAM502cにもメインRAM500c同様、不図示のバックアップ電源が接続されており、電源が切断された場合においても、データが消去されることなく保持される。なお、副制御基板502にも、主制御基板500同様、乱数発生器(乱数生成手段)502dが設けられており、乱数発生器502dによって生成される乱数(以下、演出抽選乱数という)は、主に演出の態様を決定するために用いられる。
(Sub-control board 502)
Similarly to the main control board 500, the sub-control board 502 has various semiconductor integrated circuits including a sub-CPU 502a which is a central processing unit, a sub-ROM 502b which stores programs and the like, and a sub-RAM 502c which functions as a work area, and controls the performance, in particular, based on commands from the main control board 500. Similarly to the main RAM 500c, the sub-RAM 502c is also connected to a backup power supply (not shown), so that data is retained without being erased even if the power supply is cut off. Similarly to the main control board 500, the sub-control board 502 is also provided with a random number generator (random number generating means) 502d, and the random numbers generated by the random number generator 502d (hereinafter referred to as performance lottery random numbers) are mainly used to determine the mode of the performance.

また、副制御基板502では、サブCPU502aが、サブROM502bに格納されたプログラムに基づき、サブRAM502cと協働することで機能する、初期化決定手段630、コマンド受信手段632、演出制御手段634等の機能部を有する。 In addition, the sub-control board 502 has functional units such as an initialization determination means 630, a command receiving means 632, and a performance control means 634, which function in cooperation with the sub-RAM 502c based on the program stored in the sub-ROM 502b.

初期化決定手段630は、副制御基板502における初期化処理を実行する。コマンド受信手段632は、主制御基板500等、他の制御基板からのコマンドを受信し、コマンドに対する処理を行う。演出制御手段634は、演出スイッチ422から検出信号を受信するとともに、受信されたコマンドに基づいて液晶表示部424、スピーカ428、演出用ランプ426の各デバイスで行われる遊技の演出を決定する。具体的に、演出制御手段634は、液晶表示部424に表示される画像データや、演出用ランプ426、サブクレジット表示部434、サブ払出表示部436等の電飾機器を通じた演出のための電飾データを決定するとともに、スピーカ428から出力すべき音声を構成する音声データを決定する。そして、演出制御手段634は、決定した遊技の演出を実行する。なお、演出には、補助演出も含まれる。補助演出は、当選種別抽選において、正解役(特定の役)と不正解役とが重複した選択当選種別に当選したときに、その正解役の入賞条件となるストップスイッチ420a、420b、420cの正解操作態様を報知する演出である。かかる補助演出により、遊技者は、正解役に対応する図柄組み合わせを、遊技者が有効ラインA上に容易に表示させることができる。かかる補助演出を実行する演出状態をAT(アシストタイム)演出状態という。また、AT演出状態とリプレイ役の当選確率が高いRT(リプレイタイム)遊技状態が並行して進行される所謂ART遊技状態を用いることもある。 The initialization determination means 630 executes the initialization process in the sub-control board 502. The command receiving means 632 receives commands from other control boards such as the main control board 500, and processes the commands. The performance control means 634 receives a detection signal from the performance switch 422, and determines the performance of the game performed by each device of the liquid crystal display unit 424, the speaker 428, and the performance lamp 426 based on the received command. Specifically, the performance control means 634 determines image data to be displayed on the liquid crystal display unit 424, lighting data for the performance through lighting devices such as the performance lamp 426, the sub-credit display unit 434, and the sub-payout display unit 436, and determines audio data constituting the sound to be output from the speaker 428. Then, the performance control means 634 executes the performance of the determined game. In addition, the performance also includes auxiliary performance. The auxiliary effect is an effect that notifies the player of the correct operation mode of the stop switches 420a, 420b, and 420c, which is the winning condition for the correct role, when a selected winning type in which a correct role (specific role) and an incorrect role overlap in a winning type lottery is won. This auxiliary effect allows the player to easily display the symbol combination corresponding to the correct role on the pay line A. The performance state in which this auxiliary effect is executed is called an AT (assist time) performance state. In addition, a so-called ART game state in which the AT performance state and an RT (replay time) game state, in which the probability of winning a replay role is high, are carried out in parallel, may also be used.

なお、以下では、液晶表示部424、演出用ランプ426、スピーカ428、サブクレジット表示部434、サブ払出表示部436といった、副制御基板502を含む、主制御基板500以外の基板で管理される報知手段を他報知手段という場合がある。これに対し、メインクレジット表示部430、メイン払出表示部432といった、主制御基板500で管理される報知手段を主報知手段(指示モニタ)という場合がある。また、補助演出を実行可能な主報知手段および他報知手段を合わせて補助演出実行手段という場合もある。演出状態制御手段614は、AT演出状態において、補助演出を補助演出実行手段に実行させる。 In the following, notification means managed by boards other than the main control board 500, including the sub-control board 502, such as the LCD display unit 424, performance lamps 426, speaker 428, sub-credit display unit 434, and sub-payout display unit 436, may be referred to as other notification means. In contrast, notification means managed by the main control board 500, such as the main credit display unit 430 and main payout display unit 432, may be referred to as main notification means (instruction monitor). In addition, the main notification means and other notification means capable of executing auxiliary performances may be collectively referred to as auxiliary performance execution means. The performance state control means 614 causes the auxiliary performance execution means to execute the auxiliary performance in the AT performance state.

(主制御基板500で用いられるテーブル)
図77は、当選役を説明するための説明図であり、図78および図79は、当選種別抽選テーブルを説明するための説明図である。
(Table used in main control board 500)
FIG. 77 is an explanatory diagram for explaining a winning combination, and FIG. 78 and FIG. 79 are explanatory diagrams for explaining a winning type selection table.

スロットマシン400においては、詳しくは後述するように、複数種類の遊技状態および演出状態が設けられており、遊技の進行に応じて遊技状態および演出状態が移行される。そして、主制御基板500では、遊技状態制御手段612により管理、制御される遊技状態に対応する複数の当選種別抽選テーブル等がメインROM500bに格納されている。当選種別抽選手段604は、メインRAM500cに記憶された現在の設定値(遊技利益を得る容易性を段階的に示したもの)と現在の遊技状態に応じて、対応する当選種別抽選テーブルをメインROM500bから抽出し、抽出した当選種別抽選テーブルに基づき、スタートスイッチ418の操作信号に応じて取得された当選種別抽選乱数が当選種別抽選テーブル内のいずれの当選種別に対応するか判定する。 As described in detail below, the slot machine 400 has multiple game states and presentation states, and the game states and presentation states are changed according to the progress of the game. In the main control board 500, multiple winning type lottery tables and the like corresponding to the game states managed and controlled by the game state control means 612 are stored in the main ROM 500b. The winning type lottery means 604 extracts the corresponding winning type lottery table from the main ROM 500b according to the current setting value (which indicates the easiness of obtaining a game profit in stages) stored in the main RAM 500c and the current game state, and determines which winning type in the winning type lottery table corresponds to the winning type lottery random number obtained according to the operation signal of the start switch 418 based on the extracted winning type lottery table.

ここで、当選種別抽選テーブルで抽出される当選種別を構成する当選役には、リプレイ役、小役、ボーナス役が含まれる。リプレイ役は、リプレイ役に対応する図柄組み合わせが有効ラインA上に表示されると、遊技者によるメダルの新たなるベットを行わずして再度遊技を実行できる役である。小役は、その小役に対応する図柄組み合わせが有効ラインA上に表示されることにより、図柄組み合わせに応じて所定枚数のメダルの払い出しを受けることができる役である。また、ボーナス役は、そのボーナス役に対応する図柄組み合わせが有効ラインA上に表示されることにより、遊技状態制御手段612により管理される遊技状態をボーナス遊技状態(後述するRBB作動中遊技状態)に移行させることができる役である。 Here, the winning roles that make up the winning types extracted in the winning type lottery table include a replay role, a small role, and a bonus role. A replay role is a role that allows the player to play again without placing a new medal bet when a symbol combination corresponding to the replay role is displayed on the active line A. A small role is a role that allows the player to receive a predetermined number of medals according to the symbol combination when a symbol combination corresponding to the small role is displayed on the active line A. A bonus role is a role that allows the game state managed by the game state control means 612 to transition to a bonus game state (a game state during RBB operation described later) when a symbol combination corresponding to the bonus role is displayed on the active line A.

本実施形態における当選役は、図77に示すように、リプレイ役として、当選役「リプレイ1」~「リプレイ7」が設けられている。また、小役として、当選役「小役1」~「小役39」が設けられている。また、ボーナス役として、当選役「RBB」が設けられている。図77では、左リール410a、中リール410b、右リール410cそれぞれに、各当選役を構成する1または複数の図柄が対応付けられている。 As shown in FIG. 77, the winning roles in this embodiment include replay roles "Replay 1" to "Replay 7". In addition, the winning roles "Small Role 1" to "Small Role 39" are provided as small roles. In addition, the winning role "RBB" is provided as a bonus role. In FIG. 77, one or more symbols constituting each winning role are associated with the left reel 410a, the center reel 410b, and the right reel 410c.

ここで、本実施形態においては、遊技者によってストップスイッチ420が操作されたときに、入賞可能な当選役に対応する図柄組み合わせを構成する図柄が有効ラインA上にある場合には、リール制御手段606によって、当該図柄が有効ラインA上に停止するように停止制御がなされる。また、ストップスイッチ420が操作されたときに、入賞可能な当選役に対応する図柄組み合わせを構成する図柄が、有効ラインA上にはないが、リール410の回転方向と反対の方向の図柄4コマ分に相当する範囲(引込範囲)内に存在している場合には、リール制御手段606によって、離れている図柄数が滑りコマ数となり、当該当選役に対応する図柄組み合わせを構成する図柄を有効ラインA上に引き込むように滑りコマ数分回転を維持した後に停止するように停止制御がなされる。また、入賞可能な当選役に対応する図柄がリール410中に複数あり、いずれもリール410の引込範囲内に存在している場合には、予め定められた優先順位に従っていずれの図柄を有効ラインA上に引き込むか決定され、当該優先された図柄を有効ラインA上に引き込むように滑りコマ数分回転を維持した後に停止するように停止制御がなされる。なお、ストップスイッチ420が押圧操作されたときに、入賞可能な当選役以外の当選役に対応する図柄組み合わせを構成する図柄が有効ラインA上にある場合には、リール制御手段606によって、その図柄を有効ラインA上に停止させないようにする、所謂蹴飛ばし処理も並行して実行される。また、後述するように、当選種別に含まれる当選役に操作態様(操作順や操作タイミング)が入賞条件として設定されている場合、リール制御手段606は、遊技者の操作態様に応じて当選役に対応する図柄組み合わせを有効ラインA上に表示可能に停止制御する。 Here, in this embodiment, when the stop switch 420 is operated by the player, if the symbols constituting the symbol combination corresponding to a possible winning combination are on the active line A, the reel control means 606 performs stop control so that the symbols stop on the active line A. Also, when the stop switch 420 is operated, if the symbols constituting the symbol combination corresponding to a possible winning combination are not on the active line A but are within a range equivalent to four symbol frames in the opposite direction to the rotation direction of the reel 410 (pulling-in range), the reel control means 606 performs stop control so that the number of separated symbols becomes the number of sliding frames, and the symbols constituting the symbol combination corresponding to the winning combination are pulled onto the active line A and then stopped after maintaining rotation for the number of sliding frames. In addition, when there are multiple symbols corresponding to winning combinations that can win prizes on the reel 410 and all of them are within the reel-in range of the reel 410, it is determined which symbol to reel in to the pay line A according to a predetermined priority order, and the stop control is performed so that the prioritized symbol is stopped after maintaining rotation for the number of sliding frames so as to reel in the winning line A. In addition, when the stop switch 420 is pressed, if a symbol constituting a symbol combination corresponding to a winning combination other than a winning combination that can win prizes is on the winning line A, the reel control means 606 also executes a so-called kicking process in parallel to prevent the symbol from stopping on the winning line A. In addition, as described later, when an operation mode (operation order or operation timing) is set as a winning condition for a winning combination included in a winning type, the reel control means 606 controls the stop so that the symbol combination corresponding to the winning combination can be displayed on the winning line A according to the operation mode of the player.

そして、例えば、当選役「リプレイ1」~「リプレイ4」、当選役「小役1」~「小役6」、「小役35」~「小役39」に対応する図柄組み合わせを構成する図柄は、各リール410において、上記の停止制御によって、必ず有効ラインA上に表示可能なように配列されている。このような当選役をPB=1と表す場合がある。一方、例えば、当選役「リプレイ5」~「リプレイ7」、当選役「小役7」~「小役34」、当選役「RBB」に対応する図柄組み合わせを構成する図柄は、各リール410において、上記の停止制御によって、必ずしも有効ラインA上に表示可能なように配列されていないので、所謂とりこぼしが発生する場合がある。このような当選役をPB≠1と表す場合がある。 For example, the symbols constituting the symbol combinations corresponding to the winning roles "Replay 1" to "Replay 4", "Small Role 1" to "Small Role 6", and "Small Role 35" to "Small Role 39" are arranged on each reel 410 so that they can always be displayed on the pay line A by the above-mentioned stop control. Such a winning role may be expressed as PB=1. On the other hand, for example, the symbols constituting the symbol combinations corresponding to the winning roles "Replay 5" to "Replay 7", "Small Role 7" to "Small Role 34", and "RBB" are not always arranged on each reel 410 so that they can always be displayed on the pay line A by the above-mentioned stop control, so so-called missed wins may occur. Such a winning role may be expressed as PB≠1.

図78および図79に示すように、当選種別抽選テーブルでは、複数の当選領域が区画されており、各遊技状態によって抽選の対象となる当選種別が異なったり、不当選(ハズレ)の有無が異なったりする。図78および図79では、各遊技状態(非内部遊技状態(非内部)、RBB内部中遊技状態(RBB内部中)、RBB作動中遊技状態(RBB作動中))毎に割り当てられた当選領域(当選種別)を「◎」や「○」で表しているが、実際には、複数の遊技状態それぞれに対応する当選種別抽選テーブルがメインROM500bに記憶されている。なお、「◎」は有利区間に移行させる抽選を行うことが可能な有利区間抽選可当選種別であることを示し、「○」は有利区間に移行させる抽選を行うことが不可な有利区間抽選不可当選種別であることを示している。 As shown in Figures 78 and 79, the winning type lottery table divides multiple winning areas, and the winning types that are the subject of the lottery vary depending on each game state, and the presence or absence of non-winning (missing) varies. In Figures 78 and 79, the winning areas (winning types) assigned to each game state (non-internal game state (non-internal), game state while inside RBB (while inside RBB), game state while RBB is operating (RBB operating)) are represented by "◎" or "○", but in reality, a winning type lottery table corresponding to each of the multiple game states is stored in the main ROM 500b. Note that "◎" indicates a winning type that allows the lottery of an advantageous zone for which a lottery for moving to an advantageous zone can be held, and "○" indicates a winning type that does not allow the lottery of moving to an advantageous zone for which a lottery for moving to an advantageous zone cannot be held.

当選種別抽選テーブルでは、区画化された各当選領域にはそれぞれ当選範囲を示す数値である所定の置数(当選範囲値)と当選種別が対応付けられており、遊技状態毎に割り当てられた全ての当選領域の置数を合計すると当選種別抽選乱数の総数(65536)となる。したがって、当選種別それぞれが決定される確率は、当選領域に対応付けられた置数を当選種別抽選乱数の総数で除算した値となる。当選種別抽選手段604は、その時点の遊技状態に基づいて、当該当選種別抽選テーブルにおける複数の当選領域のうち番号の高い方から、順次、置数を取得し、その置数を当選種別抽選乱数から減算して、減算後の値が0未満となると、その時点の当選領域に対応付けられた当選種別を当選種別抽選の抽選結果としている。また、当選領域1以上の全ての当選領域の置数を当選種別抽選乱数から減算して、減算後の値が0以上となっていれば、当選領域0の当選種別「ハズレ」が当選種別抽選の抽選結果となる。 In the winning type lottery table, each partitioned winning area is associated with a predetermined number of entries (winning range value), which is a numerical value indicating the winning range, and a winning type. The total number of entries in all winning areas assigned to each game state is the total number of winning type lottery random numbers (65536). Therefore, the probability of each winning type being determined is the value obtained by dividing the number of entries associated with the winning area by the total number of winning type lottery random numbers. The winning type lottery means 604 sequentially obtains the number of entries from the multiple winning areas in the winning type lottery table starting with the highest number based on the game state at that time, subtracts the number of entries from the winning type lottery random number, and if the value after subtraction is less than 0, the winning type associated with the winning area at that time is the lottery result of the winning type lottery. Also, if the number of entries in all winning areas 1 or more are subtracted from the winning type lottery random number and the value after subtraction is 0 or more, the winning type "miss" of winning area 0 is the lottery result of the winning type lottery.

ここで、当選種別「RBB」を構成する当選役「RBB」について補足する。所定の第1種特別役物RBは、規定数ごとの入賞に係る図柄の組み合わせの数を増加させ、または規定数ごとの入賞に係る条件装置が作動する確率を上昇させる役物で、あらかじめ定められた場合に作動し、12回を超えない回数の遊技の結果が得られるまで作動を継続することができるものをいう。ここで、条件装置は、その作動が入賞、再遊技、役物または役物連続作動装置の作動に係る図柄の組み合わせが表示されるために必要な条件とされている装置で、当選種別抽選(遊技機内で行われる電子計算機によるくじ)に当選した場合に作動するもの、すなわち、当選フラグを意味する。そして、当選種別「RBB」を構成する第1種特別役物に係る役物連続作動装置(当選役「RBB」)は、第1種特別役物RBを連続して作動させることができる装置であり、特定の図柄の組み合わせが表示された場合に作動し、あらかじめ定められた場合に作動を終了するものをいう。 Here, we will add some details about the winning role "RBB" that constitutes the winning type "RBB". The specified first-class special role RB is a role that increases the number of combinations of symbols related to winning for each specified number, or increases the probability of the condition device related to winning for each specified number activating, and is activated in a predetermined case and can continue to operate until the result of the game is obtained not more than 12 times. Here, the condition device is a device whose operation is a necessary condition for the display of a combination of symbols related to winning, replay, the operation of a role, or the operation of a role continuous operation device, and is activated when a winning type lottery (a lottery by a computer performed in the gaming machine) is won, that is, it means a winning flag. And the role continuous operation device related to the first-class special role that constitutes the winning type "RBB" (winning role "RBB") is a device that can continuously operate the first-class special role RB, and is activated when a specific combination of symbols is displayed and ends its operation in a predetermined case.

図78の当選種別抽選テーブルによれば、例えば当選領域0には、当選種別「ハズレ」が対応付けられており、かかる当選種別に当選すると、図77に示したいずれの当選役に対応する図柄組み合わせも有効ラインA上に表示されることはなく、メダルの払い出し等が行われることはない。ただし、後述するように、RBB内部当選フラグが次遊技に持ち越されている場合、当選種別「ハズレ」の当選により、当選役「RBB」に対応する図柄組み合わせを有効ラインA上に表示させることが可能となる。 According to the winning type lottery table in FIG. 78, for example, winning area 0 is associated with the winning type "miss", and when this winning type is won, the symbol combination corresponding to any of the winning roles shown in FIG. 77 will not be displayed on the active line A, and no medals will be paid out. However, as described below, if the RBB internal winning flag is carried over to the next game, winning the winning type "miss" makes it possible to display the symbol combination corresponding to the winning role "RBB" on the active line A.

また、当選領域1には、当選役「小役1」~「小役39」が重複して含まれる当選種別「小役ALL」が対応付けられており、当選領域2には、当選役「小役11」~「小役39」が重複して含まれる当選種別「1枚ALLA」が対応付けられており、当選領域3には、当選役「小役12」~「小役27」が重複して含まれる当選種別「1枚ALLB」が対応付けられている。また、当選領域4には、当選役「小役12」、「小役20」が重複して含まれる当選種別「択1枚1」が対応付けられ、当選領域5には、当選役「小役13」、「小役21」が重複して含まれる当選種別「択1枚2」が対応付けられ、当選領域6には、当選役「小役14」、「小役22」が重複して含まれる当選種別「択1枚3」が対応付けられ、当選領域7には、当選役「小役15」、「小役23」が重複して含まれる当選種別「択1枚4」が対応付けられている。また、当選領域8には、当選役「小役35」、「小役36」が重複して含まれる当選種別「弱チェリー」が対応付けられ、当選領域9には、当選役「小役37」~「小役39」が重複して含まれる当選種別「強チェリー」が対応付けられ、当選領域10には、当選役「小役7」、「小役8」、「小役11」が重複して含まれる当選種別「スイカA」が対応付けられ、当選領域11には、当選役「小役7」~「小役10」が重複して含まれる当選種別「スイカB」が対応付けられ、当選領域12には、当選役「小役1」、「小役3」、「小役5」が重複して含まれる当選種別「強ベル」が対応付けられている。また、当選領域13には、当選役「小役1」~「小役6」が重複して含まれる当選種別「共通ベルA」が対応付けられ、当選領域14には、当選役「小役1」~「小役6」、「小役11」が重複して含まれる当選種別「共通ベルB」が対応付けられている。 In addition, winning area 1 is associated with a winning type "small win ALL" which includes overlapping winning roles "small win 1" to "small win 39", winning area 2 is associated with a winning type "1 coin ALLA" which includes overlapping winning roles "small win 11" to "small win 39", and winning area 3 is associated with a winning type "1 coin ALLB" which includes overlapping winning roles "small win 12" to "small win 27". In addition, winning area 4 is associated with a winning type "1 choice 1" which includes the overlapping winning roles "small role 12" and "small role 20", winning area 5 is associated with a winning type "1 choice 2" which includes the overlapping winning roles "small role 13" and "small role 21", winning area 6 is associated with a winning type "1 choice 3" which includes the overlapping winning roles "small role 14" and "small role 22", and winning area 7 is associated with a winning type "1 choice 4" which includes the overlapping winning roles "small role 15" and "small role 23". In addition, the winning area 8 is associated with a winning type "weak cherry" which includes the overlapping winning roles "small role 35" and "small role 36", the winning area 9 is associated with a winning type "strong cherry" which includes the overlapping winning roles "small role 37" to "small role 39", the winning area 10 is associated with a winning type "watermelon A" which includes the overlapping winning roles "small role 7", "small role 8", and "small role 11", the winning area 11 is associated with a winning type "watermelon B" which includes the overlapping winning roles "small role 7" to "small role 10", and the winning area 12 is associated with a winning type "strong bell" which includes the overlapping winning roles "small role 1", "small role 3", and "small role 5". In addition, winning area 13 is associated with a winning type "common bell A" that includes the winning roles "small role 1" to "small role 6" in overlapping fashion, and winning area 14 is associated with a winning type "common bell B" that includes the winning roles "small role 1" to "small role 6" and "small role 11" in overlapping fashion.

また、当選領域15~26には、払出枚数が11枚となる正解役(当選役「小役1」~「小役6」)と、払出枚数が1枚の不正解役(当選役「小役12」~「小役34」)が重複して含まれる選択当選種別(当選種別「打順ベル1A」~「打順ベル6A」、「打順ベル1B」~「打順ベル6B」)がそれぞれ対応付けられている。 In addition, winning regions 15 to 26 are associated with selected winning types (winning types "Batting Order Bell 1A" to "Batting Order Bell 6A" and "Batting Order Bell 1B" to "Batting Order Bell 6B") that overlap correct roles with a payout of 11 coins (winning roles "Small Role 1" to "Small Role 6") and incorrect roles with a payout of 1 coin (winning roles "Small Role 12" to "Small Role 34").

また、図79の当選種別抽選テーブルによれば、当選領域27~39には、当選役「リプレイ1」~「リプレイ7」が重複して含まれる当選種別「シンボルリプレイA1」~「シンボルリプレイA7」、「シンボルリプレイB1」~「シンボルリプレイB6」が対応付けられている。また、当選領域40には、当選役「リプレイ1」、「リプレイ2」が重複して含まれる当選種別「通常リプレイ」が対応付けられている。 According to the winning type selection table in FIG. 79, winning areas 27 to 39 are associated with winning types "Symbol Replay A1" to "Symbol Replay A7" and "Symbol Replay B1" to "Symbol Replay B6", which include overlapping winning roles "Replay 1" to "Replay 7". Furthermore, winning area 40 is associated with the winning type "Normal Replay", which includes overlapping winning roles "Replay 1" and "Replay 2".

また、当選領域41~46には、当選役「RBB」が単独、または、他の小役と重複して含まれる当選種別「RBB1」~「RBB6」が対応付けられている。 In addition, winning regions 41 to 46 are associated with winning types "RBB1" to "RBB6" that include the winning combination "RBB" alone or in combination with other minor combinations.

そして、複数の当選役が重複して含まれる当選種別に当選した場合には、いずれの当選役に対応する図柄組み合わせを有効ラインA上に優先的に表示させるかについての入賞条件、例えば、ストップスイッチ420a、420b、420cが操作される順番が設定されている。 When a winning type that includes multiple overlapping winning combinations is won, the winning conditions for which symbol combination corresponding to each winning combination is preferentially displayed on the pay line A are set, for example, the order in which the stop switches 420a, 420b, and 420c are operated.

以下の説明において、左リール410a、中リール410b、右リール410cの順にリールを停止させるストップスイッチ420a、420b、420cの操作を「打順1」とし、左リール410a、右リール410c、中リール410bの順にリールを停止させるストップスイッチ420a、420b、420cの操作を「打順2」とし、中リール410b、左リール410a、右リール410cの順にリールを停止させるストップスイッチ420a、420b、420cの操作を「打順3」とし、中リール410b、右リール410c、左リール410aの順にリールを停止させるストップスイッチ420a、420b、420cの操作を「打順4」とし、右リール410c、左リール410a、中リール410bの順にリールを停止させるストップスイッチ420a、420b、420cの操作を「打順5」とし、右リール410c、中リール410b、左リール410aの順にリールを停止させるストップスイッチ420a、420b、420cの操作を「打順6」とする。 In the following description, the operation of the stop switches 420a, 420b, and 420c that stop the reels in the order of left reel 410a, center reel 410b, and right reel 410c is referred to as "batting order 1", the operation of the stop switches 420a, 420b, and 420c that stop the reels in the order of left reel 410a, right reel 410c, and center reel 410b is referred to as "batting order 2", and the operation of the stop switches 420a, 420b, and 420c that stop the reels in the order of center reel 410b, left reel 410a, and right reel 410c is referred to as "batting order 3". " The operation of the stop switches 420a, 420b, 420c that stop the reels in the order of center reel 410b, right reel 410c, and left reel 410a is "batting order 4", the operation of the stop switches 420a, 420b, 420c that stop the reels in the order of right reel 410c, left reel 410a, and center reel 410b is "batting order 5", and the operation of the stop switches 420a, 420b, 420c that stop the reels in the order of right reel 410c, center reel 410b, and left reel 410a is "batting order 6".

例えば、非内部遊技状態において、当選領域15の当選種別「打順ベル1A」に当選し、正解操作態様(打順1)による操作が行われた場合、払出枚数が11枚の正解役である当選役「小役1」に対応する図柄組み合わせが有効ラインA上に優先的に表示されるように停止制御がなされる。また、打順2による操作が行われた場合、払出枚数1枚の不正解役である当選役「小役28」に対応する図柄組み合わせが有効ラインA上に優先的に表示されるように停止制御がなされ、打順3、4による操作が行われた場合、払出枚数1枚の不正解役である当選役「小役12」に対応する図柄組み合わせが有効ラインA上に優先的に1/4の確率で表示されるように停止制御がなされ、打順5、6による操作が行われた場合、払出枚数1枚の不正解役である当選役「小役16」に対応する図柄組み合わせが有効ラインA上に優先的に1/4の確率で表示されるように停止制御がなされる。 For example, in a non-internal game state, when the winning type "batting order bell 1A" in the winning area 15 is won and an operation is performed according to the correct operation mode (batting order 1), the stop control is performed so that the symbol combination corresponding to the winning role "small role 1", which is a correct role with a payout of 11 coins, is preferentially displayed on the valid line A. Also, when an operation is performed according to batting order 2, the stop control is performed so that the symbol combination corresponding to the winning role "small role 28", which is an incorrect role with a payout of 1 coin, is preferentially displayed on the valid line A. When an operation is performed according to batting orders 3 and 4, the stop control is performed so that the symbol combination corresponding to the winning role "small role 12", which is an incorrect role with a payout of 1 coin, is preferentially displayed on the valid line A with a probability of 1/4. When an operation is performed according to batting orders 5 and 6, the stop control is performed so that the symbol combination corresponding to the winning role "small role 16", which is an incorrect role with a payout of 1 coin, is preferentially displayed on the valid line A with a probability of 1/4.

なお、当選領域15~26の各当選種別の当選確率(置数)は等しくなるように設定されている。遊技者は、通常、いずれの当選種別に当選しているのかを知ることができないため、上記のような当選領域15~26を設けることにより、正解役を入賞させにくくしている。また、上記のように、不正解役が優先的に表示される打順でストップスイッチ420a、420b、420cが操作されても、必ずしも不正解役に対応する図柄組み合わせを有効ラインA上に表示させられるとは限らないので、その操作態様によっては、とりこぼしが発生することがある(PB≠1)。 The probability of winning (number of pieces placed) for each winning type in winning areas 15-26 is set to be equal. Since players usually cannot know which winning type they have won, providing winning areas 15-26 as described above makes it difficult for correct combinations to win. Also, as described above, even if stop switches 420a, 420b, 420c are operated in a hitting order that prioritizes the display of incorrect combinations, it is not necessarily possible to display the symbol combination corresponding to the incorrect combination on the pay line A, so depending on the manner of operation, a miss may occur (PB ≠ 1).

なお、上述したいずれかの当選種別に当選すると、それぞれの当選種別に対応する内部当選フラグが成立(ON)するとともに、この内部当選フラグの成立状況に応じて、各リール410の停止制御がなされることとなる。このとき、小役が含まれる当選種別に当選したものの、これら当選役に対応する図柄組み合わせを、その遊技内で有効ラインA上に表示させることができなかった場合には、当該遊技の終了後に内部当選フラグがOFFされる。つまり、小役の当選の権利は小役が含まれる当選種別に当選した遊技内のみに限られ、当該権利を次遊技に持ち越すことはできない。これに対して、当選役「RBB」が含まれる当選種別に当選した場合には、RBB内部当選フラグが成立(ON)するとともに、当選役「RBB」に対応する図柄組み合わせが有効ラインA上に表示されるまで、RBB内部当選フラグが遊技を跨いで持ち越される。なお、リプレイ役が含まれる当選種別に対応する内部当選フラグが成立した場合には、その当選種別に含まれるリプレイ役のうちのいずれかのリプレイ役に対応する図柄組み合わせが必ず有効ラインA上に表示され、メダルを要することなく次遊技を行うために必要となる処理が行われた後に、当該内部当選フラグがOFFされる。 When any of the above winning types is won, the internal winning flag corresponding to the winning type is established (ON), and the stop control of each reel 410 is performed according to the establishment status of the internal winning flag. At this time, if a winning type including a small role is won, but the symbol combination corresponding to the winning role cannot be displayed on the active line A during the game, the internal winning flag is turned OFF after the game ends. In other words, the right to win a small role is limited only to the game in which the winning type including a small role is won, and the right cannot be carried over to the next game. On the other hand, when a winning type including the winning role "RBB" is won, the RBB internal winning flag is established (ON), and the RBB internal winning flag is carried over across games until the symbol combination corresponding to the winning role "RBB" is displayed on the active line A. In addition, when an internal win flag corresponding to a win type that includes a replay role is established, a symbol combination corresponding to one of the replay roles included in that win type is always displayed on the active line A, and after the processing required to play the next game without requiring a medal is performed, the internal win flag is turned OFF.

(遊技状態の遷移)
ここで、図80を用い、遊技状態の遷移について説明する。ここでは、非内部遊技状態、RBB内部中遊技状態、RBB作動中遊技状態といった複数の遊技状態が準備されている。各遊技状態は、後述するように、ボーナス役の当選、入賞(作動)、終了に応じて遷移させる。
(Game state transition)
Here, the transition of the game state will be explained using FIG. 80. Here, a plurality of game states are prepared, such as a non-internal game state, an internal RBB game state, and an RBB operation game state. As described later, each game state is transitioned according to the winning of a bonus role, winning (operation), and ending.

非内部遊技状態は、複数の遊技状態における初期状態に相当する遊技状態である。かかる非内部遊技状態では、リプレイ役の当選確率が約1/7.3に設定されている。また、非内部遊技状態では、当選役「RBB」が所定の確率(例えば約1/30)で決定されている。 The non-internal game state is a game state that corresponds to the initial state among multiple game states. In such a non-internal game state, the probability of winning a replay role is set to approximately 1/7.3. In addition, in the non-internal game state, the winning role "RBB" is determined with a predetermined probability (for example, approximately 1/30).

遊技状態制御手段612は、当選役「RBB」の当選に応じて遊技状態を遷移させる。例えば、当選役「RBB」が当選した遊技において、当選役「RBB」に対応する図柄組み合わせが有効ラインA上に表示されると、遊技状態制御手段612は、遊技状態をRBB作動中遊技状態に移行させる(1)。 The game state control means 612 transitions the game state in response to the winning combination "RBB". For example, in a game in which the winning combination "RBB" is won, when a symbol combination corresponding to the winning combination "RBB" is displayed on the active line A, the game state control means 612 transitions the game state to a game state in which RBB is active (1).

RBB作動中遊技状態では、リプレイ役の当選確率が0に設定されている。なお、かかるRBB作動中遊技状態では、当選可能な当選種別として、当選領域1に当選種別「小役ALL」が、当選領域2、3に当選種別「1枚ALLA」、「1枚ALLB」が設定されている。当選種別「小役ALL」に当選すると、当選役「小役1」~「小役39」のいずれかに対応する図柄組み合わせが有効ラインA上に表示され、当選種別「1枚ALL」に当選すると、当選役「小役11」~「小役39」のいずれかに対応する図柄組み合わせが有効ラインA上に表示されるように停止制御される。ここでは、かかる小役の構成によりRBB作動中遊技状態での単位遊技当たりの期待獲得枚数を低くしている。 In the RBB-activated game state, the probability of winning a replay role is set to 0. In this RBB-activated game state, the possible winning types are set as "small role ALL" in the winning area 1, and "1-piece ALLA" and "1-piece ALLB" in the winning areas 2 and 3. When the "small role ALL" winning type is won, a symbol combination corresponding to one of the winning roles "small role 1" to "small role 39" is displayed on the active line A, and when the "1-piece ALL" winning type is won, the game is stopped and controlled so that a symbol combination corresponding to one of the winning roles "small role 11" to "small role 39" is displayed on the active line A. Here, the expected number of coins per unit of play in the RBB-activated game state is lowered by the configuration of the small roles.

RBB作動中遊技状態の終了条件を満たすと、すなわち、獲得枚数が所定枚数に到達すると、遊技状態制御手段612は、遊技状態を非内部遊技状態に移行させる(2)。 When the conditions for terminating the RBB-operated game state are met, i.e., when the number of coins won reaches a predetermined number, the game state control means 612 transitions the game state to a non-internal game state (2).

一方、当選役「RBB」が当選した遊技において、当選役「RBB」に対応する図柄組み合わせを有効ラインA上に表示することができなかった場合、遊技状態制御手段612は、遊技状態をRBB内部中遊技状態(特別遊技状態)に移行させる(3)。 On the other hand, in a game in which the winning combination "RBB" is won, if the symbol combination corresponding to the winning combination "RBB" cannot be displayed on the active line A, the game state control means 612 transitions the game state to an RBB internal game state (special game state) (3).

RBB内部中遊技状態では、リプレイ役の当選確率が約1/5.9に設定されている。また、RBB内部中遊技状態では当選種別「ハズレ」に当選することはない。換言すれば、当選役「RBB」の当選遊技で当選役「RBB」に対応する図柄組み合わせを有効ラインA上に表示することができなかった場合、その後は、当選役「RBB」より小役やリプレイ役の方が優先して有効ラインA上に停止制御されるので、当選役「RBB」に対応する図柄組み合わせを有効ラインA上に表示することができない。したがって、一旦、遊技状態がRBB内部中遊技状態に移行すると、その後、遊技状態が遷移することなく、RBB内部中遊技状態が維持されることとなる。ここでは、かかるRBB内部中遊技状態を維持しつつ、そのRBB内部中遊技状態においてAT演出状態を実現する。 In the RBB internal game state, the probability of winning a replay role is set to approximately 1/5.9. Also, in the RBB internal game state, the winning type "miss" cannot be won. In other words, if the symbol combination corresponding to the winning role "RBB" cannot be displayed on the active line A in the winning game of the winning role "RBB", the symbol combination corresponding to the winning role "RBB" cannot be displayed on the active line A after that, since the minor role and the replay role are controlled to stop on the active line A in priority to the winning role "RBB". Therefore, once the game state transitions to the RBB internal game state, the RBB internal game state is maintained without any transition of the game state. Here, while maintaining such an RBB internal game state, the AT performance state is realized in the RBB internal game state.

ここでは、RBB内部中遊技状態において、複数種類の正解役が互いに重複せずに当選するため、正解役を入賞させることができる機会を多くすることができ、その結果、例えば、RBB内部中遊技状態におけるAT演出状態において補助演出が行われることで、メダルを獲得しやすくできる。一方、RBB作動中遊技状態では、複数種類の正解役が重複して当選するため、正解役を入賞させることができる機会が少ないので、他の遊技状態におけるAT演出状態よりも正解役を入賞させることができる機会が減り、遊技者が所有するメダルを増やしにくくしている。したがって、RBB内部中遊技状態よりも入賞に係る当選役の当選確率が高いというRBB作動中遊技状態の機能を備えつつ、メダルの獲得性能の面ではRBB作動中遊技状態がRBB内部中遊技状態に劣るという仕様(アクセルRBB)を実現することができる。 Here, in the RBB internal game state, multiple types of correct roles are won without overlapping with each other, so the chances of winning a correct role can be increased, and as a result, for example, by performing an auxiliary performance in the AT performance state in the RBB internal game state, medals can be easily won. On the other hand, in the RBB operation game state, multiple types of correct roles are won in overlapping, so there are fewer chances of winning a correct role, and therefore there are fewer chances of winning a correct role than in the AT performance state in other game states, making it difficult for the player to increase the medals he owns. Therefore, it is possible to realize a specification (accelerator RBB) in which the RBB operation game state is inferior to the RBB internal game state in terms of medal winning performance, while having the function of the RBB operation game state in which the winning role related to winning is higher than in the RBB internal game state.

(演出状態の遷移)
図81は、演出状態の遷移を説明するための説明図である。以下、主制御基板500において演出状態制御手段614により遷移される演出状態(非AT演出状態、AT演出状態)について詳述する。なお、以下では、遊技状態がRBB内部中遊技状態である場合について説明する。
(Transition of performance state)
81 is an explanatory diagram for explaining the transition of the presentation state. Below, the presentation state (non-AT presentation state, AT presentation state) that is transitioned by the presentation state control means 614 in the main control board 500 will be described in detail. In addition, the following will explain the case where the game state is the game state inside the RBB.

ここで、メダルの獲得性能が高い遊技状態が偏っているか否かを統括的かつ画一的に判定すべく、指示機能に係る性能を有する遊技区間、すなわち、補助演出(指示機能)を実行する遊技区間等を含む、遊技者にとって有利な遊技区間を有利区間(特定区間)として定義する。なお、有利区間は、主制御基板500で補助演出の作動に係る抽選等を行った結果、補助演出が作動した場合には、主制御基板500において指示の内容が識別できるよう、例えば、主報知手段に表示したときに限り、指示情報を、副制御基板502等の周辺基板に送信してもよい遊技区間である。また、有利区間と異なる遊技区間を非有利区間とする。したがって、複数の演出状態(非AT演出状態、AT演出状態)は、遊技区間である有利区間および非有利区間のいずれかに属することとなる。本実施形態では、ほぼ全ての演出状態が有利区間に属し、非AT演出状態の一部の演出状態(ここでは非有利演出状態)で非有利区間を実現している。 Here, in order to comprehensively and uniformly determine whether or not the game state with high medal acquisition performance is biased, a game area that has a performance related to the instruction function, that is, a game area that is advantageous to the player, including a game area that executes an auxiliary performance (instruction function), is defined as an advantageous area (specific area). Note that the advantageous area is a game area in which instruction information may be sent to a peripheral board such as the sub-control board 502 only when the instruction content is displayed on the main notification means, for example, so that the main control board 500 can identify the instruction content when the auxiliary performance is activated as a result of a lottery or the like related to the activation of the auxiliary performance on the main control board 500. In addition, a game area different from the advantageous area is defined as a non-advantageous area. Therefore, multiple performance states (non-AT performance state, AT performance state) belong to either the advantageous area or the non-advantageous area, which are game areas. In this embodiment, almost all performance states belong to the advantageous area, and a non-advantageous area is realized in some performance states of the non-AT performance state (here, the non-advantageous performance state).

なお、有利区間において、補助演出がないと正解役を取りこぼしてしまう当選態様のうち、正解役の配当が最大(ここでは、11枚)となる選択当選種別において、正解役の入賞を補助する補助演出(最大払出枚数を獲得できる補助演出)を行う場合、例えば、区間表示器460を点灯させることによって、その旨を報知しなければならない。 In addition, in the advantageous zone, among the winning modes in which the correct combination would be missed without the auxiliary effect, in the selected winning type in which the payout for the correct combination is the maximum (here, 11 coins), when an auxiliary effect that assists in winning the correct combination (an auxiliary effect that can obtain the maximum payout number) is performed, this must be notified, for example, by lighting up the zone indicator 460.

また、非有利区間においては、当選種別の当選確率を設定値毎に異ならせることは可能であるが、同一の当選種別において補助演出を伴う演出状態(AT演出状態)への移行を決定する確率は設定値毎に異ならせてはならない。一方、有利区間においては、当選種別の当選確率、および、同一の当選種別における補助演出を伴う演出状態(AT演出状態)への移行(または追加)を決定する確率のいずれも設定値毎に異ならせることは可能である。 In addition, in non-advantageous zones, the probability of winning a type of win can be made different for each setting value, but the probability of deciding to transition to a presentation state with auxiliary effects (AT presentation state) for the same winning type must not be made different for each setting value. On the other hand, in advantageous zones, both the probability of winning a type of win and the probability of deciding to transition (or add) to a presentation state with auxiliary effects (AT presentation state) for the same winning type can be made different for each setting value.

したがって、演出状態制御手段614は、演出状態の移行の管理に加え、非有利区間と有利区間との移行も管理することとなる。また、有利区間は、このような管理に拘わらず、以下の終了条件を満たすことで強制的に終了する。例えば、有利区間において計数される値が所定値に達したこと(例えば、滞在遊技数(遊技実行回数)が1500遊技に達したり、獲得枚数(純増枚数)が2400枚を超えたこと)に基づいて強制的に終了する。いずれの場合においても、演出状態制御手段614は、有利区間から非有利区間に移行することで、有利区間で更新された情報(指示機能に係る性能に影響を及ぼす全ての変数)を全てリセットする。 Therefore, the presentation state control means 614 manages the transition of the presentation state, as well as the transition between the non-advantageous zone and the advantageous zone. Regardless of this management, the advantageous zone is forcibly terminated when the following termination conditions are met. For example, the zone is forcibly terminated when the value counted in the advantageous zone reaches a predetermined value (for example, the number of games played during the zone (number of games played) reaches 1,500 games, or the number of coins won (net increase in number of coins) exceeds 2,400). In either case, the presentation state control means 614 resets all information updated in the advantageous zone (all variables that affect the performance related to the instruction function) by transitioning from the advantageous zone to the non-advantageous zone.

(非AT演出状態、AT演出状態)
非AT演出状態においては、AT演出状態より、補助演出の実行頻度が極めて低く、補助演出がほぼ行われないので、獲得できるメダルの枚数が制限される。ここでは、非AT演出状態として通常演出状態、非有利演出状態、準備演出状態、第1インターバル演出状態、継続抽選演出状態、第2インターバル演出状態といった6つの演出状態が設けられている。
(Non-AT performance state, AT performance state)
In the non-AT performance state, the frequency of execution of the auxiliary performance is extremely low compared to the AT performance state, and the auxiliary performance is almost not performed, so the number of medals that can be acquired is limited. Here, six performance states are provided as the non-AT performance state, such as a normal performance state, a non-advantageous performance state, a preparation performance state, a first interval performance state, a continuous lottery performance state, and a second interval performance state.

AT演出状態においては、選択当選種別全ての当選時において補助演出実行手段に補助演出を実行させることで、メダルの消費を抑えつつ、多くのメダルを獲得することが可能となる。したがって、遊技者は、AT演出状態に移行することで、非AT演出状態と比べ、遊技を有利に進行することができる。ここでは、AT演出状態として、擬似ボーナス演出状態が設けられている。以下、各演出状態(通常演出状態、擬似ボーナス演出状態、非有利演出状態、準備演出状態、第1インターバル演出状態、継続抽選演出状態、第2インターバル演出状態)について個々に説明する。 In the AT performance state, by having the auxiliary performance execution means execute the auxiliary performance when all selected winning types are won, it is possible to win many medals while reducing medal consumption. Therefore, by transitioning to the AT performance state, the player can play more advantageously than in a non-AT performance state. Here, a pseudo bonus performance state is provided as the AT performance state. Each performance state (normal performance state, pseudo bonus performance state, non-advantageous performance state, preparation performance state, first interval performance state, continuous lottery performance state, second interval performance state) will be explained individually below.

(各演出状態)
通常演出状態は、複数の演出状態のうち、初期状態に相当する演出状態である。演出状態制御手段614は、通常演出状態においてAT抽選を行う。AT抽選は、AT演出状態への移行を決定する抽選であり、演出状態制御手段614は、当選種別抽選により決定された当選種別ごとに異なる確率でAT抽選を行う。そして、AT抽選に当選した場合、演出状態制御手段614は、所定の前兆遊技数が経過した後に、演出状態をAT演出状態である擬似ボーナス演出状態に移行させる(1)。また、擬似ボーナス演出状態に移行することなく通常演出状態で所定の天井条件(例えば、通常演出状態を連続して所定遊技数消化)が満たされると(所謂、天井到達)、演出状態制御手段614は、演出状態を擬似ボーナス演出状態へ移行させる(1)。
(Each performance state)
The normal presentation state is a presentation state corresponding to the initial state among a plurality of presentation states. The presentation state control means 614 performs an AT lottery in the normal presentation state. The AT lottery is a lottery that determines the transition to the AT presentation state, and the presentation state control means 614 performs an AT lottery with a different probability for each winning type determined by the winning type lottery. Then, when the AT lottery is won, the presentation state control means 614 transitions the presentation state to a pseudo bonus presentation state, which is an AT presentation state, after a predetermined number of premonition games have elapsed (1). Also, when a predetermined ceiling condition (for example, a predetermined number of games are played continuously in the normal presentation state) is satisfied in the normal presentation state without transitioning to the pseudo bonus presentation state (so-called reaching the ceiling), the presentation state control means 614 transitions the presentation state to a pseudo bonus presentation state (1).

擬似ボーナス演出状態では、所定の終了条件(例えば、消化した遊技数が所定遊技数に到達すること)を満たすまで、補助演出が実行され、遊技者は、擬似ボーナス演出状態において、例えば、期待獲得枚数3.5枚を得ることができる。なお、擬似ボーナス演出状態では、主として2つの終了条件が準備されている。例えば、終了条件が、消化した遊技数が所定遊技数に到達することであった場合、所定遊技数として、30と80の2段階設けられ、いずれかが抽選により決定される。擬似ボーナス演出状態では、当然、消化した遊技数が多いほど、遊技者は、多くの遊技利益を得ることになる。したがって、遊技者は、所定遊技数が30ではなく80であることを望むこととなる。ただし、所定遊技数として30が決定された場合であっても、その消化中に補助演出の所定遊技数を30から80に増加させる昇格抽選も行われる。なお、ここでは、擬似ボーナス演出状態の終了条件として、消化した遊技数が所定遊技数に到達したことを例示しているが、これに代えて、最大払出枚数を獲得できる補助演出の回数が所定数に到達することや、獲得枚数(純増枚数)が所定数に到達することを採用してもよい。 In the pseudo bonus presentation state, the auxiliary presentation is executed until a predetermined end condition (for example, the number of games played reaches a predetermined number of games) is met, and the player can obtain, for example, 3.5 expected coins in the pseudo bonus presentation state. In the pseudo bonus presentation state, two main end conditions are prepared. For example, if the end condition is that the number of games played reaches a predetermined number of games, two stages are set as the predetermined number of games, 30 and 80, and one of them is determined by lottery. In the pseudo bonus presentation state, the more games played, the more gaming profits the player will obtain. Therefore, the player will want the predetermined number of games to be 80, not 30. However, even if 30 is determined as the predetermined number of games, a promotion lottery is also held to increase the predetermined number of games of the auxiliary presentation from 30 to 80 during the number of games. Note that, in this example, the condition for ending the pseudo bonus presentation state is that the number of plays played reaches a predetermined number of plays, but instead, it may be that the number of times the auxiliary presentation that can win the maximum payout number reaches a predetermined number, or that the number of coins won (net increase in number of coins) reaches a predetermined number.

そして、擬似ボーナス演出状態において、所定の終了条件を満たすと、演出状態制御手段614は、演出状態を非有利演出状態に移行する場合がある(2)。このとき、演出状態制御手段614は、有利区間を、一旦、非有利区間に移行し、有利区間で更新された情報を全てリセットする。例えば、前段の擬似ボーナス演出状態が初回の擬似ボーナス演出状態であった場合、すなわち、通常演出状態から移行した直後の擬似ボーナス演出状態であれば、演出状態制御手段614は、演出状態を非有利演出状態に移行するとともに、有利区間を、一旦、非有利区間に移行する。また、前段の擬似ボーナス演出状態が、通常演出状態を経由しない3の倍数(3、6、…)回目の擬似ボーナス演出状態であった場合も、演出状態制御手段614は、有利区間を、一旦、非有利区間に移行するとともに、有利区間を、一旦、非有利区間に移行する。 When a predetermined end condition is satisfied in the pseudo-bonus presentation state, the presentation state control means 614 may transition the presentation state to a non-advantageous presentation state (2). At this time, the presentation state control means 614 transitions the advantageous section to a non-advantageous section once, and resets all information updated in the advantageous section. For example, if the previous pseudo-bonus presentation state was the first pseudo-bonus presentation state, that is, if it is a pseudo-bonus presentation state immediately after transition from a normal presentation state, the presentation state control means 614 transitions the presentation state to a non-advantageous presentation state and transitions the advantageous section to a non-advantageous section once. Also, if the previous pseudo-bonus presentation state was a pseudo-bonus presentation state that is a multiple of three (3rd, 6th, ...) without passing through the normal presentation state, the presentation state control means 614 transitions the advantageous section to a non-advantageous section once, and transitions the advantageous section to a non-advantageous section once.

そして、演出状態制御手段614は、有利区間への移行を高確率(例えば、1/2)で抽選し、数遊技を消化後、有利区間に戻すとともに、演出状態を準備演出状態に移行する(3)。これは、有利区間において計数される値が所定値に達することにより、擬似ボーナス演出状態が強制的に終了することを回避するためである。 Then, the presentation state control means 614 draws a lottery for a transition to the advantageous zone with a high probability (for example, 1/2), and after the number play is completed, returns to the advantageous zone and transitions the presentation state to the preparation presentation state (3). This is to avoid the pseudo bonus presentation state being forcibly terminated when the value counted in the advantageous zone reaches a predetermined value.

一方、前段の擬似ボーナス演出状態が初回ではない、もしくは、通常演出状態を経由しない3の倍数回目の擬似ボーナス演出状態ではない場合、演出状態制御手段614は、演出状態を非有利演出状態に移行することなく、直接、準備演出状態に移行する(4)。これは、有利区間において計数される値が所定値に達することにより擬似ボーナス演出状態が強制的に終了することを回避しつつ、不要に有利区間を終了させないためである。 On the other hand, if the previous pseudo-bonus presentation state is not the first time, or is not a pseudo-bonus presentation state that is a multiple of three and does not pass through a normal presentation state, the presentation state control means 614 transitions the presentation state directly to the preparation presentation state without transitioning to a non-advantageous presentation state (4). This is to avoid the pseudo-bonus presentation state being forcibly terminated when the value counted in the advantageous zone reaches a predetermined value, while also preventing the advantageous zone from being terminated unnecessarily.

準備演出状態において、演出状態制御手段614は、第1インターバル演出状態への移行を高確率(例えば、1/2)で抽選し、第1インターバル演出状態への移行の決定に基づいて、演出状態を第1インターバル演出状態に移行する(5)。 In the preparation performance state, the performance state control means 614 draws a lottery for transition to the first interval performance state with a high probability (e.g., 1/2), and transitions the performance state to the first interval performance state based on the decision to transition to the first interval performance state (5).

第1インターバル演出状態は、所定の終了条件(例えば、40遊技の消化)を満たすまで継続し、その間、擬似ボーナス演出状態の継続抽選が実行される。かかる第1インターバル演出状態は、擬似ボーナス演出状態と異なり、単位遊技当たりの期待獲得枚数が少なく、負の値となる場合もある。なお、本実施形態では、非有利区間において有利区間に当選した場合、演出状態が必ず第1インターバル演出状態となるように設定されている。したがって、擬似ボーナス演出状態の終了後は、有利区間が継続した場合であっても、上記のように、一旦、非有利区間に移行した場合であっても、第1インターバル演出状態に移行することとなる。そして、第1インターバル演出状態における所定の終了条件を満たすと、演出状態制御手段614は、演出状態を継続抽選演出状態に移行する(6)。 The first interval presentation state continues until a predetermined end condition (for example, 40 plays are played) is met, during which time a lottery is held to continue the pseudo bonus presentation state. Unlike the pseudo bonus presentation state, the first interval presentation state has a smaller expected number of coins per unit play, and may even be a negative value. In this embodiment, if a favorable zone is won in a non-favorable zone, the presentation state is set to always become the first interval presentation state. Therefore, after the pseudo bonus presentation state ends, the presentation state will transition to the first interval presentation state even if the favorable zone continues, or even if the zone transitions to a non-favorable zone as described above. Then, when a predetermined end condition in the first interval presentation state is met, the presentation state control means 614 transitions the presentation state to a continuation lottery presentation state (6).

継続抽選演出状態は、所定の終了条件(例えば、5遊技の消化)を満たすまで継続し、最終的に、第1インターバル演出状態における、擬似ボーナス演出状態の継続抽選の結果が報知される。かかる継続抽選演出状態も、擬似ボーナス演出状態と異なり、単位遊技当たりの期待獲得枚数が少なく、負の値となる場合もある。第1インターバル演出状態において、擬似ボーナス演出状態への移行(継続)が決定されていれば、演出状態制御手段614は、演出状態を擬似ボーナス演出状態への移行し(7)、擬似ボーナス演出状態への移行が決定されていなければ、演出状態制御手段614は、演出状態を通常演出状態へ戻す(8)。 The continuation lottery presentation state continues until a predetermined end condition (e.g., five plays are completed) is met, and finally, the result of the lottery for continuing the pseudo bonus presentation state in the first interval presentation state is announced. Unlike the pseudo bonus presentation state, the continuation lottery presentation state also has a small expected number of coins to be won per unit play in this continuation lottery presentation state, and may even be a negative value. If a transition (continuation) to the pseudo bonus presentation state has been determined in the first interval presentation state, the presentation state control means 614 transitions the presentation state to the pseudo bonus presentation state (7), and if a transition to the pseudo bonus presentation state has not been determined, the presentation state control means 614 returns the presentation state to the normal presentation state (8).

このように、本実施形態では、一旦、擬似ボーナス演出状態に移行すると、継続抽選演出状態の継続抽選に漏れない限り、擬似ボーナス演出状態→準備演出状態→第1インターバル演出状態→継続抽選演出状態の移行を繰り返すことで、遊技者は、メダルを蓄積できる。 In this way, in this embodiment, once the pseudo bonus presentation state is entered, the player can accumulate medals by repeating the transition from the pseudo bonus presentation state → preparation presentation state → first interval presentation state → continuation selection presentation state, unless the player misses the continuation selection selection state.

なお、準備演出状態において、演出状態制御手段614は、第1インターバル演出状態への移行抽選に加え、第2インターバル演出状態への移行抽選も行っている。ただし、第1インターバル演出状態への移行確率(例えば、1/2)より、第2インターバル演出状態への移行確率(例えば、1/20)の方が小さく設定されている。準備演出状態において、第1インターバル演出状態への移行が決定する前に、第2インターバル演出状態への移行が決定されると、演出状態制御手段614は、第2インターバル演出状態への移行の決定に基づいて、演出状態を第2インターバル演出状態に移行する(9)。なお、ここでは、準備演出状態において第2インターバル演出状態への移行抽選を行う例を挙げているが、同様に、非有利演出状態において第2インターバル演出状態への移行抽選を行ってもよい。 In addition, in the preparation performance state, the performance state control means 614 draws a lottery for transition to the second interval performance state in addition to drawing a lottery for transition to the first interval performance state. However, the probability of transition to the second interval performance state (e.g., 1/20) is set smaller than the probability of transition to the first interval performance state (e.g., 1/2). In the preparation performance state, if a transition to the second interval performance state is determined before a transition to the first interval performance state is determined, the performance state control means 614 transitions the performance state to the second interval performance state based on the decision to transition to the second interval performance state (9). Note that, although an example of drawing a lottery for transition to the second interval performance state in the preparation performance state is given here, a lottery for transition to the second interval performance state may also be drawn in a non-advantageous performance state in a similar manner.

第2インターバル演出状態は、第1インターバル演出状態同様、所定の終了条件(例えば、40遊技の消化)を満たすまで継続し、その間、擬似ボーナス演出状態の継続抽選が実行される。かかる第2インターバル演出状態は、第1インターバル演出状態同様、擬似ボーナス演出状態と異なり、単位遊技当たりの期待獲得枚数が少なく、負の値となる場合もある。 The second interval presentation state, like the first interval presentation state, continues until a predetermined end condition (e.g., 40 plays are played) is met, during which time a lottery is held to continue the pseudo bonus presentation state. Like the first interval presentation state, the second interval presentation state differs from the pseudo bonus presentation state in that the expected number of coins to be won per unit of play is small, and may even be a negative value.

ただし、第2インターバル演出状態は、第1インターバル演出状態より高確率で擬似ボーナス演出状態が決定される。例えば、第1インターバル演出状態においては、40遊技間、擬似ボーナス演出状態を毎遊技1/58で決定し(当選確率50%)、第2インターバル演出状態においては、40遊技間、擬似ボーナス演出状態を毎遊技1/25で決定する(当選確率80%)。そして、所定の終了条件を満たすと、演出状態制御手段614は、演出状態を継続抽選演出状態に移行する(10)。なお、一旦、第2インターバル演出状態への移行が決定されると、その後は、継続抽選演出状態に漏れるまで、非有利演出状態、準備演出状態、第1インターバル演出状態に移行することはなく、擬似ボーナス演出状態からは第2インターバル演出状態にしか移行しない(11)。したがって、遊技者は、常に、高確率で継続抽選を受けることができる。また、一旦、第2インターバル演出状態への移行が決定されると、継続抽選演出状態において擬似ボーナス演出状態への移行が決定されなかった場合でも、演出状態制御手段614は、直ちに、演出状態を通常演出状態に戻すことなく、非有利演出状態に移行させる(12)。したがって、継続抽選演出状態において擬似ボーナス演出状態への移行が決定されなかった場合、再度、継続抽選演出状態の継続抽選に漏れるまで、擬似ボーナス演出状態→準備演出状態→第1インターバル演出状態→継続抽選演出状態の移行を繰り返すことができる。このように、一旦、第2インターバル演出状態に移行すると、高確率で、擬似ボーナス演出状態→第2インターバル演出状態→継続抽選演出状態の移行を繰り返すことができ、さらに、継続抽選演出状態において擬似ボーナス演出状態への移行が決定されなくとも、少なくとも、再度、擬似ボーナス演出状態→準備演出状態→第1インターバル演出状態→継続抽選演出状態の移行を繰り返すことができるので、遊技者は、より多くのメダルを蓄積することが可能となる。つまり、第2インターバル演出状態は、第1インターバル演出状態よりも有利な状態といえる。 However, the pseudo bonus presentation state is determined with a higher probability in the second interval presentation state than in the first interval presentation state. For example, in the first interval presentation state, the pseudo bonus presentation state is determined every 1/58 of a game for 40 games (50% chance of winning), and in the second interval presentation state, the pseudo bonus presentation state is determined every 1/25 of a game for 40 games (80% chance of winning). Then, when a predetermined end condition is met, the presentation state control means 614 transitions the presentation state to a continuous lottery presentation state (10). Once the transition to the second interval presentation state is determined, thereafter, there will be no transition to a non-advantageous presentation state, preparation presentation state, or first interval presentation state until the continuous lottery presentation state is missed, and the pseudo bonus presentation state will only transition to the second interval presentation state (11). Therefore, the player can always receive a continuation lottery with a high probability. In addition, once a transition to the second interval presentation state is determined, even if a transition to the pseudo bonus presentation state is not determined in the continuous lottery presentation state, the presentation state control means 614 immediately transitions the presentation state to a non-advantageous presentation state without returning the presentation state to the normal presentation state (12). Therefore, if a transition to the pseudo bonus presentation state is not determined in the continuous lottery presentation state, the transition from the pseudo bonus presentation state to the preparation presentation state to the first interval presentation state to the continuous lottery presentation state can be repeated until the continuation lottery for the continuous lottery presentation state is missed again. In this way, once a transition to the second interval presentation state is made, the transition from the pseudo bonus presentation state to the second interval presentation state to the continuous lottery presentation state can be repeated with a high probability, and further, even if a transition to the pseudo bonus presentation state is not determined in the continuous lottery presentation state, the transition from the pseudo bonus presentation state to the preparation presentation state to the first interval presentation state to the continuous lottery presentation state can at least be repeated again, so that the player can accumulate more medals. In other words, the second interval presentation state can be said to be a more advantageous state than the first interval presentation state.

また、上記のように、演出状態制御手段614は、擬似ボーナス演出状態から第2インターバル演出状態に移行する際には、第1インターバル演出状態への移行と異なり、非有利区間に移行させることがない。本実施形態においては、擬似ボーナス演出状態が初回の擬似ボーナス演出状態であった場合、演出状態制御手段614は、第2インターバル演出状態に移行させることはなく、有利区間を、一旦、非有利区間に移行して、必ず、第1インターバル演出状態へ移行させる。そうすると、有利区間が一旦リセットされていることになる。したがって、第2インターバル演出状態へ移行する際に有利区間をリセットしなくても、第2インターバル演出状態を経由する擬似ボーナス演出状態が有利区間の制限により短期に終了することはなく、遊技者は、擬似ボーナス演出状態→第2インターバル演出状態→継続抽選演出状態のループにより、多くのメダルを得ることができる。 As described above, when transitioning from the pseudo bonus presentation state to the second interval presentation state, the presentation state control means 614 does not transition to a non-advantageous zone, unlike the transition to the first interval presentation state. In this embodiment, if the pseudo bonus presentation state is the initial pseudo bonus presentation state, the presentation state control means 614 does not transition to the second interval presentation state, but transitions the advantageous zone to a non-advantageous zone once, and always transitions to the first interval presentation state. In this way, the advantageous zone is reset once. Therefore, even if the advantageous zone is not reset when transitioning to the second interval presentation state, the pseudo bonus presentation state that passes through the second interval presentation state will not end in a short period due to the limitation of the advantageous zone, and the player can obtain many medals by looping the pseudo bonus presentation state → second interval presentation state → continuous lottery presentation state.

以下、主制御基板500、副制御基板502における具体的処理をフローチャートに基づいて説明する。 The specific processing on the main control board 500 and the sub-control board 502 is explained below based on the flowchart.

(主制御基板500のCPU初期化処理)
図82は、主制御基板500におけるCPU初期化処理を説明するフローチャートである。電源基板より電源が供給されると、メインCPU500aにシステムリセットが発生し、メインCPU500aは、以下のCPU初期化処理(S2000)を行う。
(CPU Initialization Processing of Main Control Board 500)
82 is a flowchart explaining the CPU initialization process in the main control board 500. When power is supplied from the power supply board, a system reset occurs in the main CPU 500a, and the main CPU 500a performs the following CPU initialization process (S2000).

(ステップS2000-1)
メインCPU500aは、電源投入に応じて、初期設定処理として、メインROM500bから起動プログラムを読み込むとともに、各種処理を実行するために必要な設定処理を行う。
(Step S2000-1)
When the power is turned on, the main CPU 500a reads a startup program from the main ROM 500b as an initial setting process, and performs setting processes required for executing various processes.

(ステップS2000-3)
メインCPU500aは、タイマカウンタにウェイト処理時間を設定する。
(Step S2000-3)
The main CPU 500a sets a wait processing time in a timer counter.

(ステップS2000-5)
メインCPU500aは、電源断予告信号を検出しているかを判定する。なお、主制御基板500には、電源断検知回路が設けられており、電源電圧が所定値以下になると、電源断検知回路から電源断予告信号が出力される。電源断予告信号を検出している場合には、上記ステップS2000-3に処理を移し、電源断予告信号を検出していない場合には、ステップS2000-7に処理を移す。
(Step S2000-5)
The main CPU 500a judges whether a power-off warning signal has been detected. The main control board 500 is provided with a power-off detection circuit, which outputs a power-off warning signal when the power supply voltage falls below a predetermined value. If a power-off warning signal has been detected, the process proceeds to step S2000-3, and if a power-off warning signal has not been detected, the process proceeds to step S2000-7.

(ステップS2000-7)
メインCPU500aは、上記ステップS2000-3で設定したウェイト処理時間が経過したか否かを判定する。その結果、ウェイト処理時間が経過したと判定した場合にはステップS2000-9に処理を移し、ウェイト時間は経過していないと判定した場合には上記ステップS2000-5に処理を移す。
(Step S2000-7)
The main CPU 500a judges whether the wait processing time set in step S2000-3 has elapsed or not. If it is judged that the wait processing time has elapsed, the process proceeds to step S2000-9, and if it is judged that the wait time has not elapsed, the process proceeds to step S2000-5.

(ステップS2000-9)
メインCPU500aは、メインRAM500cへのアクセスを許可するために必要な処理を実行する。
(Step S2000-9)
The main CPU 500a executes the processes required to permit access to the main RAM 500c.

(ステップS2000-11)
メインCPU500aは、チェックサム確認処理を実行する。ここでは、メインCPU500aは、チェックサムを算出し、算出したチェックサムが、電源断時に保存されたチェックサムと一致しない(異常である)か、ならびに、バックアップが異常であるかを判定する。そして、メインCPU500aは、バックアップおよびチェックサムのいずれか一方または双方が異常であると判定した場合、バックアップ異常フラグをオンにし、バックアップおよびチェックサムの双方が異常でないと判定した場合、バックアップ異常フラグをオフにする。
(Step S2000-11)
The main CPU 500a executes a checksum confirmation process. Here, the main CPU 500a calculates a checksum and judges whether the calculated checksum does not match the checksum saved at the time of power off (is abnormal) and whether the backup is abnormal. If the main CPU 500a judges that either or both of the backup and the checksum are abnormal, it turns on the backup abnormality flag, and if it judges that neither the backup nor the checksum are abnormal, it turns off the backup abnormality flag.

(ステップS2000-13)
メインCPU500aは、バックアップ異常フラグがオンであるかを判定する。その結果、バックアップ異常フラグがオンであると判定した場合にはステップS2010に処理を移し、バックアップ異常フラグがオンでないと判定した場合にはステップS2020に処理を移す。
(Step S2000-13)
The main CPU 500a determines whether the backup abnormality flag is on. If it is determined that the backup abnormality flag is on, the process proceeds to step S2010, and if it is determined that the backup abnormality flag is not on, the process proceeds to step S2020.

(ステップS2010)
メインCPU500aは、コールドスタート処理を実行する。なお、このコールドスタート処理については後述する。
(Step S2010)
The main CPU 500a executes a cold start process, which will be described later.

(ステップS2020)
メインCPU500aは、設定値を切り替える設定値切り替え処理を実行する。なお、この設定値切り替え処理については後述する。
(Step S2020)
The main CPU 500a executes a setting value switching process for switching the setting value, which will be described later.

(ステップS2030)
メインCPU500aは、電源断直前の状態に戻す状態復帰処理を実行する。なお、この状態復帰処理については後述する。
(Step S2030)
The main CPU 500a executes a state restoration process to restore the state immediately before the power was turned off, as will be described later.

図83は、主制御基板500におけるコールドスタート処理(S2010)を説明するフローチャートである。 Figure 83 is a flowchart explaining the cold start processing (S2010) in the main control board 500.

(ステップS2010-1)
メインCPU500aは、メインRAM500cにおける使用領域をクリアするとともに、使用領域の異常を検出する使用領域RAMチェック処理を実行する。
(Step S2010-1)
The main CPU 500a clears the used area in the main RAM 500c and executes a used area RAM check process to detect any abnormalities in the used area.

(ステップS2010-3)
メインCPU500aは、メインRAM500cにおける別領域(使用外領域)をクリアするとともに、別領域の異常を検出する別領域RAMチェック処理を実行する。なお、別領域RAMチェック処理において別領域に異常が検出された場合、メインCPU500aは、RAMリードライトエラーフラグをオンにする。
(Step S2010-3)
The main CPU 500a clears the separate area (unused area) in the main RAM 500c and executes a separate area RAM check process to detect an abnormality in the separate area. If an abnormality is detected in the separate area in the separate area RAM check process, the main CPU 500a turns on a RAM read/write error flag.

(ステップS2010-5)
メインCPU500aは、メインRAM500cの異常を示すエラーコード「EA」をセットする。
(Step S2010-5)
The main CPU 500a sets an error code "EA" indicating an abnormality in the main RAM 500c.

(ステップS2010-7)
メインCPU500aは、上記ステップS2010-1において異常が検出されたかを判定する。その結果、上記ステップS2010-1において異常が検出されたと判定した場合にはステップS2011に処理を移し、上記ステップS2010-1において異常が検出されていないと判定された場合にはステップS2010-9に処理を移す。
(Step S2010-7)
The main CPU 500a judges whether an abnormality has been detected in the above step S2010-1. If it is judged that an abnormality has been detected in the above step S2010-1, the process proceeds to step S2011, and if it is judged that an abnormality has not been detected in the above step S2010-1, the process proceeds to step S2010-9.

(ステップS2010-9)
メインCPU500aは、上記ステップS2010-3において異常が検出されたときにオンになるRAMリードライトエラーフラグを取得する。
(Step S2010-9)
The main CPU 500a acquires a RAM read/write error flag that is turned on when an abnormality is detected in step S2010-3.

(ステップS2010-11)
メインCPU500aは、RAMリードライトエラーフラグがオンであるかを判定する。その結果、RAMリードライトエラーフラグがオンであると判定した場合にはステップS2011に処理を移し、RAMリードライトエラーフラグがオンでないと判定された場合にはステップS2020に処理を移す。
(Step S2010-11)
The main CPU 500a judges whether the RAM read/write error flag is on. If it is judged that the RAM read/write error flag is on, the process proceeds to step S2011, and if it is judged that the RAM read/write error flag is not on, the process proceeds to step S2020.

(ステップS2020)
メインCPU500aは、設定値を切り替える設定値切り替え処理を実行する。なお、この設定値切り替え処理については後述する。
(Step S2020)
The main CPU 500a executes a setting value switching process for switching the setting value, which will be described later.

(ステップS2010-13)
メインCPU500aは、バックアップエラーであることを示すエラーコード「E7」をセットする。
(Step S2010-13)
The main CPU 500a sets an error code "E7" indicating a backup error.

(ステップS2011)
メインCPU500aは、エラーにより遊技の進行を停止させるためのエラー停止処理を実行する。なお、このエラー停止処理については後述する。
(Step S2011)
The main CPU 500a executes an error stop process for stopping the progress of the game due to an error, which will be described later.

図84は、主制御基板500におけるエラー停止処理(S2011)を説明するフローチャートである。 Figure 84 is a flowchart explaining the error stop processing (S2011) in the main control board 500.

(ステップS2011-1)
メインCPU500aは、スタックポインタのアドレスとして、初期スタックポインタ値をセットする。
(Step S2011-1)
The main CPU 500a sets an initial stack pointer value as the address of the stack pointer.

(ステップS2011-3)
メインCPU500aは、エラー表示および警告音設定を行うエラー設定処理を実行する。
(Step S2011-3)
The main CPU 500a executes an error setting process for displaying an error and setting an alarm sound.

(ステップS2011-5)
メインCPU500aは、外部信号1~3に対応するビットの出力イメージをオフにする外部信号1~3出力ビットオフをセットする。
(Step S2011-5)
The main CPU 500a sets the external signal 1-3 output bit OFF, which turns off the output image of the bits corresponding to the external signals 1-3.

(ステップS2011-7)
メインCPU500aは、上記ステップS2011-5でセットしたビットについて、出力イメージを更新する出力ポートイメージセット処理を実行する。
(Step S2011-7)
The main CPU 500a executes an output port image set process to update the output image for the bit set in step S2011-5.

(ステップS2011-9)
メインCPU500aは、永久ループに移行する。これにより、遊技の進行が停止することになる。
(Step S2011-9)
The main CPU 500a goes into a permanent loop, which stops the progress of the game.

図85は、主制御基板500における設定値切り替え処理(S2020)を説明するフローチャートである。 Figure 85 is a flowchart explaining the setting value switching process (S2020) in the main control board 500.

(ステップS2020-1)
メインCPU500aは、入力ポート1の信号を取得し、取得した入力ポート1の信号に基づいて、設定値切り替え条件が成立していないかを判定する。その結果、設定値切り替え条件が成立していないと判定した場合には当該設定値切り替え処理を終了し、設定値切り替え条件が成立していると判定した場合にはステップS2020-3に処理を移す。ここで、入力ポート1の信号には、前面上扉404および前面下扉406が開放されているか否かを示す信号、および、設定ドアキーがオンにされているか否かを示す信号が含まれる。そして、ここでは、前面上扉404および前面下扉406が開放されていることを示す信号、ならびに、設定ドアキーがオンにされていることを示す信号を取得した場合に、設定値切り替え条件が成立していると判定している。
(Step S2020-1)
The main CPU 500a acquires a signal from the input port 1, and judges whether the setting value switching condition is satisfied based on the acquired signal from the input port 1. As a result, if it is judged that the setting value switching condition is not satisfied, the setting value switching process is terminated, and if it is judged that the setting value switching condition is satisfied, the process proceeds to step S2020-3. Here, the signal from the input port 1 includes a signal indicating whether the front upper door 404 and the front lower door 406 are opened or not, and a signal indicating whether the setting door key is turned on or not. Here, it is judged that the setting value switching condition is satisfied when a signal indicating that the front upper door 404 and the front lower door 406 are opened and a signal indicating that the setting door key is turned on are acquired.

(ステップS2020-3)
メインCPU500aは、メインRAM500cにおいて設定変更時にクリアすべき使用領域をクリアするRAMクリア処理を実行する。
(Step S2020-3)
The main CPU 500a executes a RAM clear process to clear areas in the main RAM 500c that should be cleared when the settings are changed.

(ステップS2020-5)
メインCPU500aは、設定値切り替え時データテーブルのテーブルデータをメインRAM500cに転送するテーブル内容セット処理を実行する。
(Step S2020-5)
The main CPU 500a executes a table content setting process for transferring the table data of the setting value switching data table to the main RAM 500c.

(ステップS2020-7)
メインCPU500aは、設定値の変更を開始することを示す設定変更開始コマンドを送信バッファにセットする。
(Step S2020-7)
The main CPU 500a sets in the transmission buffer a setting change start command, which indicates the start of changing the setting value.

(ステップS2020-9)
メインCPU500aは、入力ポートの信号の立ち上がりエッジ(オンエッジ)、および、立ち下がりエッジ(オフエッジ)を検出するエッジチェック処理を実行する。
(Step S2020-9)
The main CPU 500a executes edge check processing to detect the rising edge (on edge) and falling edge (off edge) of the signal at the input port.

(ステップS2020-11)
メインCPU500aは、現在の設定値を示す設定値データを取得する。
(Step S2020-11)
The main CPU 500a obtains setting value data indicating the current setting value.

(ステップS2020-13)
メインCPU500aは、上記ステップS2020-9において設定変更スイッチのオンエッジを検出していないかを判定する。その結果、設定変更スイッチのオンエッジを検出していないと判定した場合にはステップS2020-17に処理を移し、設定変更スイッチのオンエッジを検出したと判定した場合にはステップS2020-15に処理を移す。
(Step S2020-13)
The main CPU 500a judges whether the on-edge of the setting change switch has been detected in the above step S2020-9. If it is judged that the on-edge of the setting change switch has not been detected, the process proceeds to step S2020-17, and if it is judged that the on-edge of the setting change switch has been detected, the process proceeds to step S2020-15.

(ステップS2020-15)
メインCPU500aは、設定値データを1インクリメントする。
(Step S2020-15)
The main CPU 500a increments the setting value data by one.

(ステップS2020-17)
メインCPU500aは、設定値データが、設定値として設定可能な範囲(1~6)内であるかを判定する。その結果、設定値データが範囲内であると判定した場合にはステップS2020-21に処理を移し、設定値データが範囲内でないと判定した場合にはステップS2020-19に処理を移す。
(Step S2020-17)
The main CPU 500a judges whether the set value data is within the range (1 to 6) that can be set as a set value. If it is judged that the set value data is within the range, the process proceeds to step S2020-21, and if it is judged that the set value data is not within the range, the process proceeds to step S2020-19.

(ステップS2020-19)
メインCPU500aは、設定値データを0にセットする。
(Step S2020-19)
The main CPU 500a sets the setting value data to 0.

(ステップS2020-21)
メインCPU500aは、上記ステップS2020-15または上記ステップS2020-19でインクリメントまたはセットされた値に設定値データを更新する。
(Step S2020-21)
The main CPU 500a updates the setting value data to the value incremented or set in step S2020-15 or step S2020-19.

(ステップS2020-23)
メインCPU500aは、設定値をメインクレジット表示部430に表示する表示データ変換処理を実行する。
(Step S2020-23)
The main CPU 500 a executes a display data conversion process for displaying the set value in the main credit display section 430 .

(ステップS2020-25)
メインCPU500aは、設定変更スイッチのオンエッジを検出していないかを判定する。その結果、設定変更スイッチのオンエッジを検出していないと判定した場合にはステップS2020-31に処理を移し、設定変更スイッチのオンエッジを検出していると判定した場合にはステップS2020-27に処理を移す。
(Step S2020-25)
The main CPU 500a judges whether the on-edge of the setting change switch is detected. If it is judged that the on-edge of the setting change switch is not detected, the process proceeds to step S2020-31, and if it is judged that the on-edge of the setting change switch is detected, the process proceeds to step S2020-27.

(ステップS2020-27)
メインCPU500aは、設定変更スイッチがオンであるかを判定する。その結果、設定変更スイッチがオンであると判定した場合にはステップS2020-27に処理を移し、設定変更スイッチがオンでないと判定した場合にはステップS2020-29に処理を移す。
(Step S2020-27)
The main CPU 500a judges whether the setting change switch is on. If it is judged that the setting change switch is on, the process proceeds to step S2020-27, and if it is judged that the setting change switch is not on, the process proceeds to step S2020-29.

(ステップS2020-29)
メインCPU500aは、設定変更スイッチ間隔タイマをセットする。
(Step S2020-29)
The main CPU 500a sets a setting change switch interval timer.

(ステップS2020-31)
メインCPU500aは、設定変更スイッチ間隔タイマが0になるまで待つタイマウェイト処理を実行する。
(Step S2020-31)
The main CPU 500a executes a timer wait process to wait until the setting change switch interval timer counts down to 0.

(ステップS2020-33)
メインCPU500aは、スタートスイッチ418のオンエッジを検出していないかを判定する。その結果、スタートスイッチ418のオンエッジを検出していないと判定した場合にはステップS2020-9に処理を移し、スタートスイッチ418のオンエッジを検出していると判定した場合にはステップS2020-35に処理を移す。
(Step S2020-33)
The main CPU 500a judges whether it has detected an on-edge of the start switch 418. As a result, if it is judged that an on-edge of the start switch 418 has not been detected, the process proceeds to step S2020-9, and if it is judged that an on-edge of the start switch 418 has been detected, the process proceeds to step S2020-35.

(ステップS2020-35)
メインCPU500aは、設定ドアキーがオフであるかを判定する。その結果、設定ドアキーがオフであると判定した場合にはステップS2020-35に処理を移し、設定ドアキーがオフでないと判定した場合にはステップS2020-37に処理を移す。
(Step S2020-35)
The main CPU 500a judges whether the set door key is OFF. If it is judged that the set door key is OFF, the process proceeds to step S2020-35, and if it is judged that the set door key is not OFF, the process proceeds to step S2020-37.

(ステップS2020-37)
メインCPU500aは、設定ドアキーがオンであるかを判定する。その結果、設定ドアキーがオンであると判定した場合にはステップS2020-37に処理を移し、設定ドアキーがオンでないと判定した場合にはステップS2021に処理を移す。
(Step S2020-37)
The main CPU 500a judges whether the set door key is on. If it is judged that the set door key is on, the process proceeds to step S2020-37, and if it is judged that the set door key is not on, the process proceeds to step S2021.

(ステップS2021)
メインCPU500aは、初期化スタートを開始する初期化スタート処理を実行する。なお、この初期化スタート処理については後述する。
(Step S2021)
The main CPU 500a executes an initialization start process to start the initialization start, which will be described later.

図86は、主制御基板500における初期化スタート処理(S2021)を説明するフローチャートである。 Figure 86 is a flowchart explaining the initialization start process (S2021) in the main control board 500.

(ステップS2021-1)
メインCPU500aは、設定値の変更が終了したことを示す設定変更終了コマンドを送信バッファにセットする。
(Step S2021-1)
The main CPU 500a sets in the transmission buffer a setting change end command indicating that the change of the setting value has been completed.

(ステップS2021-3)
メインCPU500aは、設定値の変更が終了したときの状態を示す設定変更状態コマンドを送信バッファにセットする。
(Step S2021-3)
The main CPU 500a sets in the transmission buffer a setting change state command indicating the state when the setting value change is completed.

(ステップS2021-5)
メインCPU500aは、初期化スタート時ウェイトタイマをセットする。
(Step S2021-5)
The main CPU 500a sets a wait timer at the start of initialization.

(ステップS2021-7)
メインCPU500aは、初期化スタート時ウェイトタイマが0になるまで待つタイマウェイト処理を実行する。
(Step S2021-7)
The main CPU 500a executes a timer wait process to wait until the wait timer reaches 0 at the start of initialization.

(ステップS2021-9)
メインCPU500aは、メインRAM500cのうちの別領域をクリアする設定変更時RAMクリア処理を実行する。
(Step S2021-9)
The main CPU 500a executes a setting change RAM clear process to clear a separate area of the main RAM 500c.

(ステップS2021-11)
メインCPU500aは、メインRAM500cにおいて設定変更時にクリアすべき使用領域をクリアするRAMクリア処理を実行する。
(Step S2021-11)
The main CPU 500a executes a RAM clear process to clear areas in the main RAM 500c that should be cleared when the settings are changed.

(ステップS2021-13)
メインCPU500aは、現在の遊技状態を示す遊技状態コマンドを送信バッファにセットする。
(Step S2021-13)
The main CPU 500a sets a game status command indicating the current game status in a transmission buffer.

(ステップS2100)
メインCPU500aは、遊技を開始するための遊技開始処理を実行する。なお、この遊技開始処理については後述する。
(Step S2100)
The main CPU 500a executes a game start process to start a game, which will be described later.

図87は、主制御基板500における状態復帰処理(S2030)を説明するフローチャートである。 Figure 87 is a flowchart explaining the state restoration process (S2030) in the main control board 500.

(ステップS2030-1)
メインCPU500aは、スタックポインタを復帰させる。
(Step S2030-1)
The main CPU 500a restores the stack pointer.

(ステップS2030-3)
メインCPU500aは、メインRAM500cのうちの未使用領域をクリアする未使用領域クリア処理を実行する。
(Step S2030-3)
The main CPU 500a executes an unused area clearing process to clear unused areas in the main RAM 500c.

(ステップS2030-5)
メインCPU500aは、スタックポインタ保存バッファをクリアする。
(Step S2030-5)
The main CPU 500a clears the stack pointer storage buffer.

(ステップS2030-7)
メインCPU500aは、電源断復帰後フラグを設定(オン)する。
(Step S2030-7)
The main CPU 500a sets (ON) the post-power-off recovery flag.

(ステップS2030-9)
メインCPU500aは、入力ポートのイメージを更新するポート入力処理を実行する。
(Step S2030-9)
The main CPU 500a executes a port input process to update the image of the input port.

(ステップS2030-11)
メインCPU500aは、上記ステップS2030-9で更新された入力ポートのイメージに基づいて、操作対象ビットの情報を抽出する操作対象ビット抽出処理を実行する。
(Step S2030-11)
The main CPU 500a executes an operation target bit extraction process for extracting information on the operation target bit based on the image of the input port updated in step S2030-9.

(ステップS2030-13)
メインCPU500aは、上記ステップS2030-11で抽出した操作対象ビットを、前回状態の操作対象ビットとしてセットする。
(Step S2030-13)
The main CPU 500a sets the operation target bit extracted in step S2030-11 as the operation target bit of the previous state.

(ステップS2030-15)
メインCPU500aは、リール410a、410b、410cのモータフェーズを取得する。ここで、リール410a、410b、410cの状態として、モータフェーズが設定されている。モータフェーズは、リール410a、410b、410cの動作状態、すなわち、加速中、定常回転中、停止中、待機中を示す。具体的に、モータフェーズに割り当てられた1バイト(記憶単位)の変数が、そのステッピングモータ452の動作状態に応じて、加速中=3、定常回転中=2、停止中=1、待機中=0といった値に変化する。
(Step S2030-15)
The main CPU 500a acquires the motor phases of the reels 410a, 410b, and 410c. Here, the motor phase is set as the state of the reels 410a, 410b, and 410c. The motor phase indicates the operation state of the reels 410a, 410b, and 410c, i.e., accelerating, rotating steadily, stopped, and waiting. Specifically, a variable of 1 byte (storage unit) assigned to the motor phase changes to a value such as accelerating = 3, rotating steadily = 2, stopped = 1, and waiting = 0 according to the operation state of the stepping motor 452.

(ステップS2030-17)
メインCPU500aは、上記ステップS2030-15で取得したモータフェーズに基づいて、リール410a、410b、410cのいずれもが定常回転中および加速中でないかを判定する。その結果、リール410a、410b、410cのいずれもが定常回転中および加速中でないと判定した場合にはステップS2030-21に処理を移し、リール410a、410b、410cのいずれかが定常回転中または加速中であると判定した場合にはステップS2030-19に処理を移す。
(Step S2030-17)
The main CPU 500a determines whether any of the reels 410a, 410b, 410c are rotating steadily or accelerating based on the motor phase acquired in step S2030-15. If it is determined that any of the reels 410a, 410b, 410c are not rotating steadily or accelerating, the process proceeds to step S2030-21, and if it is determined that any of the reels 410a, 410b, 410c are rotating steadily or accelerating, the process proceeds to step S2030-19.

(ステップS2030-19)
メインCPU500aは、リール410a、410b、410cのエラー検出時の設定を行う回転エラー処理を実行する。
(Step S2030-19)
The main CPU 500a executes a rotation error process that performs settings when an error is detected in the reels 410a, 410b, and 410c.

(ステップS2030-21)
メインCPU500aは、退避していたレジスタ群を復帰させる。
(Step S2030-21)
The main CPU 500a restores the saved register group.

(ステップS2030-23)
メインCPU500aは、割込みを許可し、当該状態復帰処理を終了する。これにより、メインCPU500aは、電源断直前の状態に復帰する。
(Step S2030-23)
The main CPU 500a then permits the interrupt and ends the state restoration process, thereby restoring the main CPU 500a to the state it was in immediately before the power was turned off.

図88は、主制御基板500における遊技開始処理(S2100)を説明するフローチャートである。 Figure 88 is a flowchart explaining the game start processing (S2100) on the main control board 500.

(ステップS2100-1)
メインCPU500aは、再遊技であるか否かを示す再遊技状態識別信号を出力するための再遊技状態識別信号出力設定処理を実行する。
(Step S2100-1)
The main CPU 500a executes a re-play state identification signal output setting process for outputting a re-play state identification signal indicating whether or not a re-play is being performed.

(ステップS2100-3)
メインCPU500aは、メダルの投入枚数(ベット枚数)を表示する投入枚数表示器に対応するビットをオフ(消灯)するための投入枚数表示器出力ビットオフをセットする。
(Step S2100-3)
The main CPU 500a sets an inserted number indicator output bit OFF to turn off (light off) the bit corresponding to the inserted number indicator that displays the number of inserted medals (number of bets).

(ステップS2100-5)
メインCPU500aは、上記ステップS2100-3でセットしたビットについて、出力イメージを更新する出力ポートイメージセット処理を実行する。
(Step S2100-5)
The main CPU 500a executes an output port image set process to update the output image for the bit set in step S2100-3.

(ステップS2100-7)
メインCPU500aは、遊技開始ウェイトタイマをセットする。
(Step S2100-7)
The main CPU 500a sets a game start wait timer.

(ステップS2100-9)
メインCPU500aは、遊技開始ウェイトタイマが0になるまで待つタイマウェイト処理を実行する。
(Step S2100-9)
The main CPU 500a executes a timer wait process to wait until the game start wait timer counts down to 0.

(ステップS2100-11)
メインCPU500aは、メインRAM500cにおける使用領域のうち、1遊技毎にクリアすべき領域をクリアする1遊技RAMクリア処理を実行する。
(Step S2100-11)
The main CPU 500a executes a one-game RAM clear process to clear an area in the main RAM 500c that should be cleared for each game.

(ステップS2100-13)
メインCPU500aは、ボーナス信号を設定するボーナス信号設定処理を実行する。
(Step S2100-13)
The main CPU 500a executes a bonus signal setting process for setting a bonus signal.

(ステップS2100-15)
メインCPU500aは、入力ポートイメージのエッジ情報をクリアするエッジクリア処理を実行する。
(Step S2100-15)
The main CPU 500a executes an edge clear process to clear edge information of the input port image.

(ステップS2200)
メインCPU500aは、メダルの投入を受け付ける遊技メダル投入処理を実行する。なお、この遊技メダル投入処理については後述する。
(Step S2200)
The main CPU 500a executes a medal insertion process for receiving insertion of medals, which will be described later.

図89は、主制御基板500における遊技メダル投入処理(S2200)を説明するフローチャートである。 Figure 89 is a flowchart explaining the medal insertion process (S2200) on the main control board 500.

(ステップS2200-1)
メインCPU500aは、各種エラーの検出結果の確認を行うエラー確認処理を実行する。
(Step S2200-1)
The main CPU 500a executes an error checking process to check the detection results of various errors.

(ステップS2200-3)
メインCPU500aは、入力ポートの信号の立ち上がりエッジ(オンエッジ)、および、立ち下がりエッジ(オフエッジ)を検出するエッジチェック処理を実行する。
(Step S2200-3)
The main CPU 500a executes edge check processing to detect the rising edge (on edge) and falling edge (off edge) of the signal at the input port.

(ステップS2200-5)
メインCPU500aは、前面上扉404または前面下扉406が開放されているときに1が立つドア開放エラー検出フラグを取得する。
(Step S2200-5)
The main CPU 500a acquires a door open error detection flag that is set to 1 when the front upper door 404 or the front lower door 406 is open.

(ステップS2200-7)
メインCPU500aは、上記ステップS2200-5で取得したドア開放エラー検出フラグに基づき、前面上扉404および前面下扉406が閉鎖されているかを判定する。その結果、前面上扉404および前面下扉406が閉鎖されていると判定した場合にはステップS2200-17に処理を移し、前面上扉404または前面下扉406の少なくとも一方が閉鎖されていないと判定した場合にはステップS2200-9に処理を移す。
(Step S2200-7)
The main CPU 500a judges whether the front upper door 404 and the front lower door 406 are closed based on the door open error detection flag acquired in the above step S2200-5. If it is judged that the front upper door 404 and the front lower door 406 are closed, the process proceeds to step S2200-17, and if it is judged that at least one of the front upper door 404 and the front lower door 406 is not closed, the process proceeds to step S2200-9.

(ステップS2200-9)
メインCPU500aは、前面上扉404または前面下扉406の少なくとも一方が開放されていることを示すエラーコード「E8」をセットする。
(Step S2200-9)
The main CPU 500a sets an error code "E8" which indicates that at least one of the front upper door 404 or the front lower door 406 is open.

(ステップS2200-11)
メインCPU500aは、エラー表示、警告音の要求、ならびに、エラー復帰待ちを行うエラーウェイト処理を実行する。
(Step S2200-11)
The main CPU 500a executes an error wait process to display an error, request an alarm sound, and wait for recovery from the error.

(ステップS2200-13)
メインCPU500aは、設定値を確認する設定値確認処理を実行する。
(Step S2200-13)
The main CPU 500a executes a setting value confirmation process to confirm the setting value.

(ステップS2200-15)
メインCPU500aは、入力ポートイメージのエッジ情報をクリアするエッジクリア処理を実行する。
(Step S2200-15)
The main CPU 500a executes an edge clear process to clear edge information of the input port image.

(ステップS2200-17)
メインCPU500aは、貯留(クレジット)されているメダルを払い戻すためのクレジットスイッチ(不図示)が押下されている場合に、貯留されているメダルを払い戻すクレジットボタンチェック処理を実行する。
(Step S2200-17)
When a credit switch (not shown) for paying back accumulated (credited) medals is pressed, the main CPU 500a executes a credit button check process for paying back the accumulated medals.

(ステップS2200-19)
メインCPU500aは、メダルをベットする遊技メダル投入ボタン関連処理を実行する。ここでは、ベットスイッチ416が押下された場合に、貯留(クレジット)されているメダルを規定数までベットするとともに、ベットした枚数分だけ貯留枚数を減算する。また、メダル投入口414aを通じてメダルが投入された場合、規定数までメダルをベットし、規定数よりも多くメダルが投入された場合、その分だけ貯留枚数に加算する。
(Step S2200-19)
The main CPU 500a executes a process related to the medal insertion button for betting medals. When the bet switch 416 is pressed, the reserved (credited) medals are bet up to a specified number, and the number of reserved medals is subtracted by the number of medals bet. When medals are inserted through the medal insertion slot 414a, medals are bet up to a specified number, and when more medals are inserted than the specified number, the number of medals is added to the number of reserved medals.

(ステップS2200-21)
メインCPU500aは、投入枚数が規定数であるかを確認する遊技メダル取得処理を実行する。
(Step S2200-21)
The main CPU 500a executes a medal acquisition process to check whether the number of inserted medals is a specified number.

(ステップS2200-23)
メインCPU500aは、上記ステップS2200-21の確認結果に基づき、投入枚数が規定数でないかを判定する。その結果、投入枚数が規定数でないと判定した場合にはステップS2200-1に処理を移し、投入枚数が規定数であると判定した場合にはステップS2200-25に処理を移す。
(Step S2200-23)
The main CPU 500a judges whether the number of inserted coins is equal to the specified number based on the result of the check in step S2200-21. If the number of inserted coins is equal to the specified number, the process proceeds to step S2200-1. If the number of inserted coins is equal to the specified number, the process proceeds to step S2200-25.

(ステップS2200-25)
メインCPU500aは、スタートスイッチ418の操作が有効になったか否かを示すスタート表示器(不図示)をオン(点灯)するためのスタート表示器出力ビットをセットする。
(Step S2200-25)
The main CPU 500a sets a start indicator output bit for turning on (illuminating) a start indicator (not shown) which indicates whether or not the operation of the start switch 418 has been validated.

(ステップS2200-27)
メインCPU500aは、スタートスイッチ418の立ち下がりエッジ(押下)を検出していなかを判定する。その結果、スタートスイッチ418の立ち下がりエッジを検出していないと判定した場合にはステップS2200-1に処理を移し、スタートスイッチ418の立ち下がりエッジを検出していると判定した場合にはステップS2200-29に処理を移す。
(Step S2200-27)
The main CPU 500a judges whether or not it has detected a falling edge (pressing) of the start switch 418. As a result, if it is judged that the falling edge of the start switch 418 has not been detected, the process proceeds to step S2200-1, and if it is judged that the falling edge of the start switch 418 has been detected, the process proceeds to step S2200-29.

(ステップS2200-29)
メインCPU500aは、メイン払出表示部432の表示をクリアするためにメイン払出表示部バッファをクリアする。
(Step S2200-29)
The main CPU 500a clears the main payout display section buffer to clear the display of the main payout display section 432.

(ステップS2200-31)
メインCPU500aは、再遊技状態識別信号をクリアする再遊技状態識別信号クリア処理を実行する。
(Step S2200-31)
The main CPU 500a executes a re-play state identification signal clearing process for clearing the re-play state identification signal.

(ステップS2200-33)
メインCPU500aは、スタート表示器をオフ(消灯)するためのブロッカー閉塞前処理を実行する。
(Step S2200-33)
The main CPU 500a executes blocker blocking pre-processing to turn off (extinguish) the start indicator.

(ステップS2200-35)
メインCPU500aは、スタートスイッチ418が押下されたことを示すレバー押下コマンドを送信バッファにセットする。
(Step S2200-35)
The main CPU 500a sets a lever press command, which indicates that the start switch 418 has been pressed, in the transmission buffer.

(ステップS2300)
メインCPU500aは、当選種別抽選を行う内部抽選処理を実行する。なお、この内部抽選処理については後述する。
(Step S2300)
The main CPU 500a executes an internal lottery process for carrying out a lottery for determining the type of winning. This internal lottery process will be described later.

図90は、主制御基板500における内部抽選処理(S2300)を説明するフローチャートである。 Figure 90 is a flowchart explaining the internal lottery process (S2300) in the main control board 500.

(ステップS2300-1)
メインCPU500aは、設定値データを取得する。
(Step S2300-1)
The main CPU 500a acquires the setting value data.

(ステップS2300-3)
メインCPU500aは、設定値異常エラーを示すエラーコード「EC」をセットする。
(Step S2300-3)
The main CPU 500a sets an error code "EC" indicating an abnormal setting error.

(ステップS2300-5)
メインCPU500aは、上記ステップS2300-1で取得した設定値データが異常であるかを判定する。その結果、設定値データが異常であると判定した場合にはステップS2011に処理を移し、設定値データが異常でないと判定した場合にはステップS2300-7に処理を移す。
(Step S2300-5)
The main CPU 500a judges whether the setting value data acquired in step S2300-1 is abnormal. If it is judged that the setting value data is abnormal, the process proceeds to step S2011, and if it is judged that the setting value data is not abnormal, the process proceeds to step S2300-7.

(ステップS2300-7)
メインCPU500aは、乱数発生器500dによって更新された当選種別抽選乱数を取得する。
(Step S2300-7)
The main CPU 500a obtains the winning type lottery random number updated by the random number generator 500d.

(ステップS2300-9)
メインCPU500aは、遊技状態に係るオフセット値を取得する状態オフセット取得処理を実行する。
(Step S2300-9)
The main CPU 500a executes a state offset acquisition process to acquire an offset value related to a game state.

(ステップS2300-11)
メインCPU500aは、内部抽選エリア定義テーブル(当選種別抽選テーブル)のアドレスをセットする。
(Step S2300-11)
The main CPU 500a sets the address of the internal lottery area definition table (winning type lottery table).

(ステップS2300-13)
メインCPU500aは、上記ステップS2300-11でセットしたアドレスに対して、上記ステップS2300-9で取得したオフセット値を加算したアドレスに示される値を当選領域の初期値としてセットする。ここでは、現在の遊技状態の当選種別抽選テーブルにおける最初の当選領域が初期値としてセットされることになる。
(Step S2300-13)
The main CPU 500a adds the offset value acquired in step S2300-9 to the address set in step S2300-11, and sets the value indicated by the address as the initial value of the winning area. Here, the first winning area in the winning type lottery table for the current game state is set as the initial value.

(ステップS2300-15)
メインCPU500aは、その当選領域の当選範囲を示す数値である抽選データを取得するとともに、当選領域を1ずらす抽選データ取得処理を実行する。
(Step S2300-15)
The main CPU 500a acquires lottery data, which is a numerical value indicating the winning range of the winning area, and executes a lottery data acquisition process to shift the winning area by one.

(ステップS2300-17)
メインCPU500aは、当選種別抽選を行わないかを判定する。その結果、当選種別抽選を行わないと判定した場合にはステップS2300-21に処理を移し、当選種別抽選を行うと判定した場合にはステップS2300-19に処理を移す。
(Step S2300-17)
The main CPU 500a determines whether or not to hold a prize type lottery. If it determines that a prize type lottery will not be held, the process proceeds to step S2300-21. If it determines that a prize type lottery will be held, the process proceeds to step S2300-19.

(ステップS2300-19)
メインCPU500aは、乱数値から抽選データを減算する。
(Step S2300-19)
The main CPU 500a subtracts the lottery data from the random number value.

(ステップS2300-21)
メインCPU500aは、上記ステップS2300-19の減算結果が負であるか、すなわち、当選種別抽選によって、その当選領域に当選しているかを判定する。その結果、当選種別抽選に当選していると判定した場合にはステップS2400に処理を移し、当選種別抽選に当選していないと判定した場合にはステップS2300-23に処理を移す。
(Step S2300-21)
The main CPU 500a judges whether the subtraction result in step S2300-19 is negative, i.e., whether the winning area has been won by the winning type lottery. If it is judged that the winning type lottery has been won, the process proceeds to step S2400, and if it is judged that the winning type lottery has not been won, the process proceeds to step S2300-23.

(ステップS2300-23)
メインCPU500aは、当選種別抽選が終了でないかを判定する。その結果、当選種別抽選が終了でないと判定した場合にはステップS2300-15に処理を移し、当選種別抽選が終了であると判定した場合にはステップS2300-25に処理を移す。
(Step S2300-23)
The main CPU 500a judges whether the winning type lottery has ended. If it is judged that the winning type lottery has not ended, the process proceeds to step S2300-15, and if it is judged that the winning type lottery has ended, the process proceeds to step S2300-25.

(ステップS2300-25)
メインCPU500aは、トリガー役種別をクリアする。
(Step S2300-25)
The main CPU 500a clears the trigger role type.

(ステップS2400)
メインCPU500aは、当選領域および遊技状態に基づいて、図柄コードを設定する図柄コード設定処理を実行する。なお、この図柄コード設定処理については後述する。
(Step S2400)
The main CPU 500a executes a symbol code setting process for setting a symbol code based on the winning area and the game state. This symbol code setting process will be described later.

図91は、主制御基板500における図柄コード設定処理(S2400)を説明するフローチャートである。 Figure 91 is a flowchart explaining the pattern code setting process (S2400) on the main control board 500.

(ステップS2400-1)
メインCPU500aは、上記ステップS2300で当選した当選領域を取得し、取得した当選領域にボーナス役が含まれる場合には遊技状態を内部中遊技状態に設定する遊技状態設定処理を実行する。
(Step S2400-1)
The main CPU 500a acquires the winning area acquired in step S2300, and executes a game state setting process to set the game state to an internal game state if the acquired winning area includes a bonus role.

(ステップS2400-3)
メインCPU500aは、上記ステップS2400-1で取得した当選領域を停止制御番号として設定する。
(Step S2400-3)
The main CPU 500a sets the winning area acquired in step S2400-1 as the stop control number.

(ステップS2400-5)
メインCPU500aは、上記ステップS2400-1で取得した当選領域に基づいて、当選種別を決定(設定)する。
(Step S2400-5)
The main CPU 500a determines (sets) the type of win based on the win area acquired in step S2400-1.

(ステップS2400-7)
メインCPU500aは、上記ステップS2400-3で設定した停止制御番号に基づいて、表示可能な図柄、および、引き込み対象の図柄を示す図柄コードを設定する図柄コード初期設定処理を実行する。
(Step S2400-7)
The main CPU 500a executes a symbol code initial setting process for setting symbol codes indicating symbols that can be displayed and symbols to be drawn in, based on the stop control number set in step S2400-3.

(ステップS2400-9)
メインCPU500aは、表示図柄ビットを設定する表示図柄ビット初期値設定処理を実行する。
(Step S2400-9)
The main CPU 500a executes a display symbol bit initial value setting process to set a display symbol bit.

(ステップS2400-11)
メインCPU500aは、実行フラグの設定、演出状態に関する各種処理、補助演出に関する処理等を行う実行フラグ設定処理を実行する。
(Step S2400-11)
The main CPU 500a executes an execution flag setting process, which performs various processes related to the performance state, and processes related to auxiliary performance.

(ステップS2400-13)
メインCPU500aは、有利区間に関するコマンドである演出コマンドを送信バッファにセットする。
(Step S2400-13)
The main CPU 500a sets a presentation command, which is a command related to the advantageous zone, in the transmission buffer.

(ステップS2400-15)
メインCPU500aは、当選種別を示す当選情報コマンドを送信バッファにセットする。
(Step S2400-15)
The main CPU 500a sets a winning information command indicating the type of winning in the transmission buffer.

(ステップS2400-17)
メインCPU500aは、1遊技間タイマを確認する。
(Step S2400-17)
The main CPU 500a checks the one-game timer.

(ステップS2400-19)
メインCPU500aは、リール410a、410b、410cが回転前であることを示す回胴回転前コマンドを送信バッファにセットする。
(Step S2400-19)
The main CPU 500a sets a pre-reel spin command, which indicates that the reels 410a, 410b, and 410c have not yet spun, in the transmission buffer.

(ステップS2400-21)
メインCPU500aは、ステッピングモータ452の励磁解放を待つ励磁解放待ち処理を実行する。
(Step S2400-21)
The main CPU 500a executes an excitation release waiting process for waiting for the excitation release of the stepping motor 452.

(ステップS2400-23)
メインCPU500aは、1遊技間タイマが0でないかを判定する。その結果、1遊技間タイマが0でないと判定した場合にはステップS2400-23に処理を移し、1遊技間タイマが0であると判定した場合にはステップS2400-25に処理を移す。
(Step S2400-23)
The main CPU 500a judges whether the 1-game timer is not 0. As a result, if it is judged that the 1-game timer is not 0, the process proceeds to step S2400-23, and if it is judged that the 1-game timer is 0, the process proceeds to step S2400-25.

(ステップS2400-25)
メインCPU500aは、リール410a、410b、410cの回転を開始させるための回胴開始処理を実行する。ここでは、リール410a、410b、410cのモータフェーズを加速中に設定して各リールの回転を開始させたり、1遊技間タイマを4.1秒に相当する値にセットしたりする。
(Step S2400-25)
The main CPU 500a executes a reel start process for starting the rotation of the reels 410a, 410b, and 410c. Here, the motor phases of the reels 410a, 410b, and 410c are set to accelerating to start the rotation of each reel, and the one-game timer is set to a value equivalent to 4.1 seconds.

(ステップS2400-27)
メインCPU500aは、リール410a、410b、410cの回転が開始したことを示す回胴開始コマンドを送信バッファにセットする。
(Step S2400-27)
The main CPU 500a sets a reel start command, which indicates that the reels 410a, 410b, and 410c have started to rotate, in the transmission buffer.

(ステップS2500)
メインCPU500aは、リール410a、410b、410cの回転中の処理である回胴回転中処理を実行する。なお、この回胴回転中処理については後述する。
(Step S2500)
The main CPU 500a executes a process during the rotation of the reels 410a, 410b, and 410c. This process will be described later.

図92は、主制御基板500における回胴回転中処理(S2500)を説明するフローチャートである。 Figure 92 is a flowchart explaining the processing during reel rotation (S2500) in the main control board 500.

(ステップS2500-1)
メインCPU500aは、ストップスイッチ420a、420b、420cの表示器(不図示)に対応するビットをオフ(消灯)するために停止表示器出力ビットオフ(出力イメージ)をセットする。ここで、停止表示器出力ビットは、3ビットのビット列で構成され、各ビットがそれぞれ3つのストップスイッチ420a、420b、420cの発光色に対応付けられており、青色=1、赤色=0で表される。
(Step S2500-1)
The main CPU 500a sets the stop indicator output bit off (output image) to turn off (turn off) the bit corresponding to the indicator (not shown) of the stop switches 420a, 420b, 420c. Here, the stop indicator output bit is composed of a bit string of 3 bits, each bit corresponding to the light emission color of the three stop switches 420a, 420b, 420c, respectively, and is represented by blue=1 and red=0.

(ステップS2500-3)
メインCPU500aは、上記ステップS2500-1でセットしたビットについて、出力イメージを更新する出力ポートイメージセット処理を実行する。
(Step S2500-3)
The main CPU 500a executes an output port image set process to update the output image for the bit set in step S2500-1 above.

(ステップS2500-5)
メインCPU500aは、各種エラーの検出結果の確認を行うエラー確認処理を実行する。
(Step S2500-5)
The main CPU 500a executes an error checking process to check the detection results of various errors.

(ステップS2500-7)
メインCPU500aは、インデックスフラグを参照し、回転しているリール410a、410b、410cのインデックスを取得する。なお、インデックスフラグは、リール410a、410b、410cが定速回転速度に到達した後にしか立たないので、換言すれば、インデックスフラグが立っているということは、リール410a、410b、410cが定速回転速度に到達していることも示すこととなる。
(Step S2500-7)
The main CPU 500a refers to the index flag and obtains the index of the spinning reels 410a, 410b, and 410c. Note that the index flag is set only after the reels 410a, 410b, and 410c have reached a constant rotation speed. In other words, the fact that the index flag is set indicates that the reels 410a, 410b, and 410c have reached a constant rotation speed.

(ステップS2500-9)
メインCPU500aは、リール410a、410b、410c全てのインデックスフラグを検出済みでないかを判定する。その結果、全てのインデックスフラグを検出済みでないと判定した場合にはステップS2500-1に処理を移し、全てのインデックスフラグを検出済みであると判定した場合にはステップS2500-11に処理を移す。
(Step S2500-9)
The main CPU 500a judges whether all index flags of the reels 410a, 410b, and 410c have been detected. If it is determined that all index flags have not been detected, the process proceeds to step S2500-1. If it is determined that all index flags have been detected, the process proceeds to step S2500-11.

(ステップS2500-11)
メインCPU500aは、停止または停止開始しているリール410a、410b、410cを示す停止回胴ビットを取得する。ここで、停止回胴ビットは、3ビットのビット列で構成され、各ビットがそれぞれ3つのリール410a、410b、410cのいずれかに対応付けられており、定速状態=1、加速状態、減速状態または停止状態=0で表される。
(Step S2500-11)
The main CPU 500a acquires the stopped reel bit indicating the reels 410a, 410b, and 410c that have stopped or are starting to stop. Here, the stopped reel bit is composed of a bit string of 3 bits, each bit corresponding to one of the three reels 410a, 410b, and 410c, and is represented as a constant speed state = 1, and an accelerating state, decelerating state, or stopped state = 0.

(ステップS2500-13)
メインCPU500aは、上記ステップS2500-11で取得した停止回胴ビットを回胴回転中フラグとして保存する。
(Step S2500-13)
The main CPU 500a stores the stopped reel bit acquired in step S2500-11 as a reel rotation in progress flag.

(ステップS2500-15)
メインCPU500aは、ストップスイッチ420a、420b、420cの表示器(不図示)に対応するビットをオン(消灯)するために停止表示器出力ビットオン(出力イメージ)をセットする。
(Step S2500-15)
The main CPU 500a sets a stop indicator output bit on (output image) to turn on (turn off) the bit corresponding to the indicator (not shown) of the stop switches 420a, 420b, 420c.

(ステップS2500-17)
メインCPU500aは、入力ポート0のイメージを取得し、取得したイメージから、操作対象ビットを抽出する操作対象ビット抽出処理を実行する。ここで、操作対象ビットは、3ビットのビット列で構成され、各ビットがそれぞれ3つのストップスイッチ420a、420b、420cのいずれかに対応付けられており、操作されている=1、操作されていない=0で表される。
(Step S2500-17)
The main CPU 500a acquires an image of the input port 0, and executes an operation target bit extraction process to extract an operation target bit from the acquired image. Here, the operation target bit is composed of a bit string of 3 bits, each bit corresponding to one of the three stop switches 420a, 420b, 420c, and is represented as 1 if it is operated and 0 if it is not operated.

(ステップS2500-19)
メインCPU500aは、上記ステップS2500-13で取得した回胴回転中フラグと、上記ステップS2500-17で抽出した操作対象ビットとの論理積を演算する。ここで、リール410が回転中であり、かつ、そのリールに対応するストップスイッチ420が操作されていれば、すなわち、操作したストップスイッチ420が有効に回転しているリール410に対応していれば、論理積は1となる。
(Step S2500-19)
The main CPU 500a calculates the logical product of the reel spinning flag acquired in step S2500-13 and the bit to be operated extracted in step S2500-17. If the reel 410 is spinning and the stop switch 420 corresponding to that reel is operated, that is, if the operated stop switch 420 corresponds to the reel 410 that is spinning effectively, the logical product will be 1.

(ステップS2500-21)
メインCPU500aは、上記ステップS2500-19で演算した論理積が0である、すなわち、回転しているリール410に対応したストップスイッチ420が操作されていないかを判定する。その結果、回転しているリール410に対応したストップスイッチ420が操作されていないと判定した場合にはステップS2500-3に処理を移し、回転しているリール410に対応したストップスイッチ420が操作されていると判定した場合にはステップS2500-23に処理を移す。
(Step S2500-21)
The main CPU 500a determines whether the logical product calculated in step S2500-19 is 0, i.e., whether the stop switch 420 corresponding to the spinning reel 410 has not been operated. If it is determined that the stop switch 420 corresponding to the spinning reel 410 has not been operated, the process proceeds to step S2500-3, and if it is determined that the stop switch 420 corresponding to the spinning reel 410 has been operated, the process proceeds to step S2500-23.

(ステップS2500-23)
メインCPU500aは、停止表示器出力ビットが含まれる出力イメージを取得し、取得した出力イメージと、上記ステップS2500-19で演算した論理積との論理積を演算する。ここでは、操作されたストップスイッチ420が、赤色点灯中である場合に論理積のビットが0となり、青色点灯中である場合に論理積のビットが1となる。
(Step S2500-23)
The main CPU 500a obtains an output image including the stop indicator output bit, and calculates the logical product of the obtained output image and the logical product calculated in the above step S2500-19. Here, if the operated stop switch 420 is lit in red, the bit of the logical product becomes 0, and if the operated stop switch 420 is lit in blue, the bit of the logical product becomes 1.

(ステップS2500-25)
メインCPU500aは、上記ステップS2500-23で演算した論理積が0であるか、すなわち、操作されたストップスイッチ420が赤色点灯中であるかを判定する。その結果、操作されたストップスイッチ420が赤色点灯中であると判定した場合にはステップS2500-1に処理を移し、操作されたストップスイッチ420が赤色点灯中でないと判定した場合にはステップS2500-27に処理を移す。
(Step S2500-25)
The main CPU 500a judges whether the logical product calculated in the above step S2500-23 is 0, that is, whether the operated stop switch 420 is lit in red. If it is judged that the operated stop switch 420 is lit in red, the process proceeds to step S2500-1, and if it is judged that the operated stop switch 420 is not lit in red, the process proceeds to step S2500-27.

(ステップS2500-27)
メインCPU500aは、操作されたストップスイッチ420が有効でないかを判定する。その結果、操作されたストップスイッチ420が有効でないと判定した場合にはステップS2500-1に処理を移し、操作されたストップスイッチ420が有効であると判定した場合にはステップS2500-29に処理を移す。なお、ここでは、操作されたストップスイッチ420が1つであるか否かを判定している。そして、操作されたストップスイッチ420が1つであると判定した場合にはステップS2500-29に処理を移し、操作されたストップスイッチ420が1つでない、すなわち、2つ以上であると判定した場合にはステップS2500-1に処理を移す。
(Step S2500-27)
The main CPU 500a judges whether the operated stop switch 420 is valid. As a result, if it is judged that the operated stop switch 420 is not valid, the process proceeds to step S2500-1, and if it is judged that the operated stop switch 420 is valid, the process proceeds to step S2500-29. Note that here, it is judged whether or not the number of operated stop switches 420 is one. Then, if it is judged that the number of operated stop switches 420 is one, the process proceeds to step S2500-29, and if it is judged that the number of operated stop switches 420 is not one, that is, that there are two or more, the process proceeds to step S2500-1.

(ステップS2500-29)
メインCPU500aは、操作されたストップスイッチ420に対応するリール410を停止させるための各種パラメータを取得する停止制御回胴設定処理を実行する。
(Step S2500-29)
The main CPU 500a executes a stop control reel setting process to acquire various parameters for stopping the reel 410 corresponding to the operated stop switch 420.

(ステップS2500-31)
メインCPU500aは、割込みを禁止する。
(Step S2500-31)
The main CPU 500a disables interrupts.

(ステップS2500-33)
メインCPU500aは、有効ラインA上に位置する図柄の図柄番号を押下基準位置として導出する押下基準位置取得処理を実行する。
(Step S2500-33)
The main CPU 500a executes a touch reference position acquisition process to derive the symbol number of the symbol located on the pay line A as the touch reference position.

(ステップS2500-35)
メインCPU500aは、リール410の滑りコマ数を決定する滑りコマ数取得処理を実行する。
(Step S2500-35)
The main CPU 500a executes a sliding frame number acquisition process for determining the number of sliding frames on the reel 410.

(ステップS2600)
メインCPU500aは、操作されたストップスイッチ420に対応するリール410を停止させる回胴停止処理を実行する。なお、この回胴停止処理については後述する。
(Step S2600)
The main CPU 500a executes a reel stop process for stopping the reel 410 corresponding to the operated stop switch 420. This reel stop process will be described later.

図93は、主制御基板500における回胴停止処理(S2600)を説明するフローチャートである。 Figure 93 is a flowchart explaining the reel stop processing (S2600) in the main control board 500.

(ステップS2600-1)
メインCPU500aは、上記ステップS2500-35で導出した押下基準位置を取得する。
(Step S2600-1)
The main CPU 500a obtains the pressed reference position derived in step S2500-35 above.

(ステップS2600-3)
メインCPU500aは、上記ステップS2600-1で取得した押下基準位置に対して、上記ステップS2500-37で決定した滑りコマ数を補正することにより、停止要求番号を算定する。
(Step S2600-3)
The main CPU 500a calculates a stop request number by correcting the number of sliding symbols determined in step S2500-37 above with respect to the pressed reference position acquired in step S2600-1 above.

(ステップS2600-5)
メインCPU500aは、停止要求フラグを設定する(1にする)。停止要求フラグは、並行して動作するプログラムに対し、対象となるリール410の停止処理を要求するためのフラグであり、停止要求フラグを1とすることで、停止要求番号に対応する図柄を有効ラインA上に停止することが可能となる。かかる停止要求フラグおよび上記の停止要求番号は、並行して動作するプログラムにより読み出され、リール410の停止処理が行われる。なお、停止処理が完了すると、そのプログラムによって、停止要求フラグは0(OFF)にリセットされる。
(Step S2600-5)
The main CPU 500a sets a stop request flag (sets it to 1). The stop request flag is a flag for requesting a program operating in parallel to perform a stop process for the target reel 410, and by setting the stop request flag to 1, it becomes possible to stop the symbol corresponding to the stop request number on the activated line A. The stop request flag and the stop request number are read out by the program operating in parallel, and the reel 410 is stopped. When the stop process is completed, the stop request flag is reset to 0 (OFF) by that program.

(ステップS2600-7)
メインCPU500aは、割込みを許可する。
(Step S2600-7)
The main CPU 500a permits interrupts.

(ステップS2600-9)
メインCPU500aは、リール410の停止順序を示す停止情報コマンドを送信バッファにセットする。
(Step S2600-9)
The main CPU 500a sets a stop information command indicating the stopping order of the reels 410 in the transmission buffer.

(ステップS2600-11)
メインCPU500aは、ストップスイッチ420の表示器(不図示)に対応するビットをオフ(消灯)するために停止表示器出力ビットオフ(出力イメージ)をセットする。
(Step S2600-11)
The main CPU 500a sets the stop indicator output bit off (output image) to turn off (turn off) the bit corresponding to the indicator (not shown) of the stop switch 420.

(ステップS2600-13)
メインCPU500aは、上記ステップS2600-11でセットしたビットについて、出力イメージを更新する出力ポートイメージセット処理を実行する。
(Step S2600-13)
The main CPU 500a executes an output port image set process to update the output image for the bit set in step S2600-11.

(ステップS2600-15)
メインCPU500aは、表示図柄ビットを設定する表示図柄ビット設定処理を実行する。
(Step S2600-15)
The main CPU 500a executes a display symbol bit setting process to set a display symbol bit.

(ステップS2600-17)
メインCPU500aは、次のリール410を停止させるための次回胴設定前処理を実行する。
(Step S2600-17)
The main CPU 500a executes a next cylinder setting pre-processing for stopping the next reel 410.

(ステップS2600-19)
メインCPU500aは、全てのリール410の停止処理が終了済みでないかを判定する。その結果、全てのリール410の停止処理が終了済みでないと判定した場合にはステップS2500に処理を移し、全てのリール410の停止処理が終了済みであると判定した場合にはステップS2600-21に処理を移す。
(Step S2600-19)
The main CPU 500a judges whether or not the stop processing has been completed for all of the reels 410. As a result, if it is judged that the stop processing has not been completed for all of the reels 410, the process proceeds to step S2500, and if it is judged that the stop processing has been completed for all of the reels 410, the process proceeds to step S2600-21.

(ステップS2600-21)
メインCPU500aは、いずれかのリール410について停止要求フラグがオンである、すなわち、全てのリール410が停止済みでないかを判定する。その結果、全てのリール410が停止済みでないと判定した場合にはステップS2600-21に処理を移し、全てのリール410が停止済みであると判定した場合にはステップS2600-23に処理を移す。
(Step S2600-21)
The main CPU 500a determines whether the stop request flag is on for any of the reels 410, i.e., whether all of the reels 410 have stopped. If it is determined that all of the reels 410 have not stopped, the process proceeds to step S2600-21, and if it is determined that all of the reels 410 have stopped, the process proceeds to step S2600-23.

(ステップS2600-23)
メインCPU500aは、各種エラーの検出結果の確認を行うエラー確認処理を実行する。
(Step S2600-23)
The main CPU 500a executes an error checking process to check the detection results of various errors.

(ステップS2600-25)
メインCPU500aは、操作対象ビットの情報を抽出する操作対象ビット抽出処理を実行する。
(Step S2600-25)
The main CPU 500a executes an operation target bit extraction process for extracting information on operation target bits.

(ステップS2600-27)
メインCPU500aは、上記ステップS2600-25で取得した操作対象ビットに基づいて、ストップスイッチ420が押下されているかを判定する。その結果、ストップスイッチ420が押下されていると判定した場合にはステップS2600-23に処理を移し、ストップスイッチ420が押下されていないと判定した場合にはステップS2700に処理を移す。
(Step S2600-27)
The main CPU 500a judges whether the stop switch 420 is pressed based on the operation target bit acquired in the above step S2600-25. If it is judged that the stop switch 420 is pressed, the process proceeds to step S2600-23, and if it is judged that the stop switch 420 is not pressed, the process proceeds to step S2700.

(ステップS2700)
メインCPU500aは、入賞した当選役を判定する表示判定処理を実行する。なお、この表示判定処理については後述する。
(Step S2700)
The main CPU 500a executes a display determination process for determining the winning combination that has been achieved. This display determination process will be described later.

図94は、主制御基板500における表示判定処理(S2700)を説明するフローチャートである。 Figure 94 is a flowchart explaining the display determination process (S2700) in the main control board 500.

(ステップS2700-1)
メインCPU500aは、メイン払出表示部432のバッファをクリアする。
(Step S2700-1)
The main CPU 500a clears the buffer of the main payout display section 432.

(ステップS2700-3)
メインCPU500aは、有効ラインA上に表示された図柄組み合わせと、有効ラインA上に表示許可された図柄組み合わせとが一致するか否かによって、表示判定異常が発生しているかを判定する表示判定異常検出処理を実行する。
(Step S2700-3)
The main CPU 500a executes a display judgment abnormality detection process to determine whether a display judgment abnormality has occurred based on whether or not the pattern combination displayed on the active line A matches the pattern combination permitted to be displayed on the active line A.

(ステップS2700-5)
メインCPU500aは、表示判定異常(エラー)であることを示すエラーコード「EE」をセットする。
(Step S2700-5)
The main CPU 500a sets an error code "EE" which indicates a display determination abnormality (error).

(ステップS2700-7)
メインCPU500aは、上記ステップS2700-3の判定結果に基づき、表示判定異常であるかを判定する。その結果、表示判定異常であると判定した場合にはステップS2011に処理を移し、表示判定異常でないと判定した場合にはステップS2700-9に処理を移す。
(Step S2700-7)
The main CPU 500a judges whether or not there is a display judgment abnormality based on the judgment result of the above step S2700-3. As a result, if it is judged that there is a display judgment abnormality, the process proceeds to step S2011, and if it is judged that there is no display judgment abnormality, the process proceeds to step S2700-9.

(ステップS2700-9)
メインCPU500aは、有効ラインA上に停止(表示)された図柄組み合わせに基づいて、入賞した当選役を決定する表示図柄識別生成処理を実行する。
(Step S2700-9)
The main CPU 500a executes a display symbol identification generation process for determining a winning combination based on the symbol combination stopped (displayed) on the pay line A.

(ステップS2700-11)
メインCPU500aは、払出枚数の初期値として0をセットする。
(Step S2700-11)
The main CPU 500a sets the initial value of the payout number to 0.

(ステップS2700-13)
メインCPU500aは、小役が入賞したかを判定する。その結果、小役が入賞したと判定した場合にはステップS2700-15に処理を移し、小役が入賞していないと判定した場合にはステップS2700-35に処理を移す。
(Step S2700-13)
The main CPU 500a judges whether or not a small win has been won. If it is judged that a small win has been won, the process proceeds to step S2700-15. If it is judged that a small win has not been won, the process proceeds to step S2700-35.

(ステップS2700-15)
メインCPU500aは、小役が入賞したことを示す入賞フラグをオンにする。
(Step S2700-15)
The main CPU 500a turns on a winning flag indicating that a small winning combination has been achieved.

(ステップS2700-17)
メインCPU500aは、入賞した小役に応じた払出枚数を設定する払出枚数設定処理を実行する。
(Step S2700-17)
The main CPU 500a executes a payout number setting process for setting the payout number according to the small winning combination.

(ステップS2700-19)
メインCPU500aは、有利区間でないかを判定する。その結果、有利区間でないと判定した場合にはステップS2800に処理を移し、有利区間であると判定した場合にはステップS2700-21に処理を移す。
(Step S2700-19)
The main CPU 500a judges whether the time is within an advantageous zone. If it is judged that the time is within an advantageous zone, the process proceeds to step S2800. If it is judged that the time is within an advantageous zone, the process proceeds to step S2700-21.

(ステップS2700-21)
メインCPU500aは、有利区間中の純増枚数をカウントする有利区間MYカウンタの値を取得する。
(Step S2700-21)
The main CPU 500a obtains the value of the advantageous zone MY counter, which counts the net increase in the number of coins during the advantageous zone.

(ステップS2700-23)
メインCPU500aは、上記ステップS2700-23で取得した有利区間MYカウンタの値に払出枚数を加算する。
(Step S2700-23)
The main CPU 500a adds the number of payout coins to the value of the advantageous zone MY counter obtained in step S2700-23 above.

(ステップS2700-25)
メインCPU500aは、当該遊技の投入枚数を取得する。
(Step S2700-25)
The main CPU 500a acquires the number of coins inserted for the game.

(ステップS2700-27)
メインCPU500aは、上記ステップS2700-23で加算した値から投入枚数を減算する。
(Step S2700-27)
The main CPU 500a subtracts the number of inserted coins from the value added in step S2700-23.

(ステップS2700-29)
メインCPU500aは、上記ステップS2700-27の減算結果が負でないかを判定する。その結果、減算結果が負でないと判定した場合にはステップS2700-33に処理を移し、減算結果が負であると判定した場合にはステップS2700-31に処理を移す。
(Step S2700-29)
The main CPU 500a judges whether the result of the subtraction in the above step S2700-27 is negative. If it is judged that the result of the subtraction is not negative, the process proceeds to step S2700-33, and if it is judged that the result of the subtraction is negative, the process proceeds to step S2700-31.

(ステップS2700-31)
メインCPU500aは、有利区間MYカウンタの値をクリアする(0にする)。
(Step S2700-31)
The main CPU 500a clears the value of the advantageous zone MY counter (sets it to 0).

(ステップS2700-33)
メインCPU500aは、上記ステップS2700-27で減算した値、または、上記ステップS2700-31でクリアした値に、有利区間MYカウンタの値を更新する。
(Step S2700-33)
The main CPU 500a updates the value of the favorable zone MY counter to the value subtracted in step S2700-27 or the value cleared in step S2700-31.

(ステップS2700-35)
メインCPU500aは、リプレイ役が入賞していなかを判定する。その結果、リプレイ役が入賞していないと判定した場合にはステップS2800に処理を移し、リプレイ役が入賞していると判定した場合にはステップS2700-37に処理を移す。
(Step S2700-35)
The main CPU 500a judges whether or not the replay role has been won. If it is judged that the replay role has not been won, the process proceeds to step S2800. If it is judged that the replay role has been won, the process proceeds to step S2700-37.

(ステップS2700-37)
メインCPU500aは、払出枚数に投入枚数をセットする。
(Step S2700-37)
The main CPU 500a sets the number of coins inserted as the number of coins to be paid out.

(ステップS2700-39)
メインCPU500aは、再遊技作動中フラグをオンにする。
(Step S2700-39)
The main CPU 500a turns on the re-play operation flag.

(ステップS2700-41)
メインCPU500aは、自動投入枚数をセットする。
(Step S2700-41)
The main CPU 500a sets the number of coins to be automatically inserted.

(ステップS2800)
メインCPU500aは、メダルを払い出す払出処理を実行する。なお、この払出処理については後述する。
(Step S2800)
The main CPU 500a executes a payout process for paying out medals, which will be described later.

図95は、主制御基板500における払出処理(S2800)を説明するフローチャートである。 Figure 95 is a flowchart explaining the payout process (S2800) in the main control board 500.

(ステップS2800-1)
メインCPU500aは、再遊技作動中フラグを取得する。
(Step S2800-1)
The main CPU 500a acquires a re-play operation flag.

(ステップS2800-3)
メインCPU500aは、メダルの払い出しが開始されたことを示す払出開始コマンドを送信バッファにセットする。
(Step S2800-3)
The main CPU 500a sets in the transmission buffer a payout start command indicating that the payout of medals has started.

(ステップS2800-5)
メインCPU500aは、上記ステップS2800-1で取得した再遊技作動中フラグに基づいて、リプレイ役が入賞したかを判定する。その結果、リプレイ役が入賞したと判定した場合にはステップS2800-41に処理を移し、リプレイ役が入賞していないと判定した場合にはステップS2800-7に処理を移す。
(Step S2800-5)
The main CPU 500a judges whether or not a replay has been won based on the replay operation flag acquired in step S2800-1. If it is judged that a replay has been won, the process proceeds to step S2800-41. If it is judged that a replay has not been won, the process proceeds to step S2800-7.

(ステップS2800-7)
メインCPU500aは、メイン払出表示部432に0を表示するためのメイン表示器表示処理を実行する。
(Step S2800-7)
The main CPU 500 a executes a main display display process to display 0 on the main payout display section 432 .

(ステップS2800-9)
メインCPU500aは、払い出しがない(払出枚数が0枚)を判定する。その結果、払い出しがないと判定した場合にはステップS2800-35に処理を移し、払い出しがあると判定した場合にはステップS2800-11に処理を移す。
(Step S2800-9)
The main CPU 500a determines whether or not a payout has been made (the number of payout coins is 0). If it determines that no payout has been made, the process proceeds to step S2800-35. If it determines that a payout has been made, the process proceeds to step S2800-11.

(ステップS2800-11)
メインCPU500aは、貯留枚数が50枚以上であるかを判定する。その結果、貯留枚数が50枚以上であると判定した場合にはステップS2800-13に処理を移し、貯留枚数が50枚以上でないと判定した場合にはステップS2800-15に処理を移す。
(Step S2800-11)
The main CPU 500a judges whether the number of stored sheets is 50 or more. If it is judged that the number of stored sheets is 50 or more, the process proceeds to step S2800-13, and if it is judged that the number of stored sheets is not 50 or more, the process proceeds to step S2800-15.

(ステップS2800-13)
メインCPU500aは、メダル払出装置442からメダルを1枚払い出させるメダル払出装置制御処理を実行し、ステップS2800-23に処理を移す。
(Step S2800-13)
The main CPU 500a executes a medal payout device control process to cause the medal payout device 442 to pay out one medal, and then moves to step S2800-23.

(ステップS2800-15)
メインCPU500aは、払出開始間隔タイマをセットする。
(Step S2800-15)
The main CPU 500a sets a payout start interval timer.

(ステップS2800-17)
メインCPU500aは、払出開始タイマが0でない、すなわち、初回払出時であるかを判定する。その結果、初回払出時であると判定した場合にはステップS2800-21に処理を移し、初回払出時でないと判定した場合にはステップS2800-19に処理を移す。
(Step S2800-17)
The main CPU 500a judges whether the payout start timer is not 0, i.e., whether it is the first payout time. If it is judged that it is the first payout time, the process proceeds to step S2800-21, and if it is judged that it is not the first payout time, the process proceeds to step S2800-19.

(ステップS2800-19)
メインCPU500aは、払出開始間隔タイマが0になるまで待つタイマウェイト処理を実行する。
(Step S2800-19)
The main CPU 500a executes a timer wait process to wait until the payout start interval timer counts down to 0.

(ステップS2800-21)
メインCPU500aは、貯留枚数を1インクリメントする。
(Step S2800-21)
The main CPU 500a increments the number of stored coins by one.

(ステップS2800-23)
メインCPU500aは、1枚のメダルが払い出されたことを示す払出実行コマンドを送信バッファにセットする。
(Step S2800-23)
The main CPU 500a sets in the transmission buffer a payout execution command indicating that one medal has been paid out.

(ステップS2800-25)
メインCPU500aは、既に払い出された払出枚数をメイン払出表示部432に表示するためのメイン表示器表示前処理を実行する。
(Step S2800-25)
The main CPU 500a executes a main display pre-display process for displaying the number of coins already paid out on the main payout display section 432.

(ステップS2800-27)
メインCPU500aは、ボーナス遊技状態でないかを判定する。その結果、ボーナス遊技状態でないと判定した場合にはステップS2800-31に処理を移し、ボーナス遊技状態であると判定した場合にはステップS2800-29に処理を移す。
(Step S2800-27)
The main CPU 500a judges whether or not the bonus game state is in effect. If it is judged that the bonus game state is not in effect, the process proceeds to step S2800-31. If it is judged that the bonus game state is in effect, the process proceeds to step S2800-29.

(ステップS2800-29)
メインCPU500aは、ボーナス遊技状態において払い出されたメダルの枚数であるボーナス作動中獲得枚数を1インクリメントする。
(Step S2800-29)
The main CPU 500a increments by one the number of medals acquired during bonus operation, which is the number of medals paid out in the bonus game state.

(ステップS2800-31)
メインCPU500aは、払出枚数のメダルの払い出しが終了していないかを判定する。その結果、払い出しが終了していないと判定した場合にはステップS2800-11に処理を移し、払い出しが終了していると判定した場合にはステップS2800-33に処理を移す。
(Step S2800-31)
The main CPU 500a judges whether or not the payout of the payout number of medals has been completed. If it is judged that the payout has not been completed, the process proceeds to step S2800-11. If it is judged that the payout has been completed, the process proceeds to step S2800-33.

(ステップS2800-33)
メインCPU500aは、メダルの払い出しを終了するための払出終了処理を実行する。
(Step S2800-33)
The main CPU 500a executes a payout end process to end the payout of medals.

(ステップS2800-35)
メインCPU500aは、オーバーエラーが検出されていないかを判定する。その結果、オーバーエラーが検出されていないと判定した場合にはステップS2800-41に処理を移し、オーバーエラーが検出されていると判定した場合にはステップS2800-37に処理を移す。
(Step S2800-35)
The main CPU 500a judges whether an over error has been detected. If it is judged that an over error has not been detected, the process proceeds to step S2800-41, and if it is judged that an over error has been detected, the process proceeds to step S2800-37.

(ステップS2800-37)
メインCPU500aは、オーバーエラーを示すエラーコード「E5」をセットする。
(Step S2800-37)
The main CPU 500a sets an error code "E5" indicating an over error.

(ステップS2800-39)
メインCPU500aは、エラー表示、警告音の要求、ならびに、エラー復帰待ちを行うエラーウェイト処理を実行する。
(Step S2800-39)
The main CPU 500a executes an error wait process to display an error, request an alarm sound, and wait for recovery from the error.

(ステップS2800-41)
メインCPU500aは、メダルの払い出しが終了したことを示す払出終了コマンドを送信バッファにセットする。
(Step S2800-41)
The main CPU 500a sets in the transmission buffer a payout end command indicating that the payout of medals has been completed.

(ステップS2900)
メインCPU500aは、遊技状態の移行、有利区間を管理する処理等を行う遊技移行処理を実行する。なお、この遊技移行処理については後述する。
(Step S2900)
The main CPU 500a executes a game transition process for transitioning the game state, managing advantageous zones, etc. This game transition process will be described later.

図96は、主制御基板500における遊技移行処理(S2900)を説明するフローチャートである。 Figure 96 is a flowchart explaining the game transition process (S2900) on the main control board 500.

(ステップS2900-1)
メインCPU500aは、再遊技作動中フラグを取得し、取得した再遊技作動中フラグに基づいて、次遊技が再遊技であることを示すリプレイ表示器(不図示)に対応するビットをオンまたはオフするために停止表示器出力ビットオフ(出力イメージ)をセットし、セットした出力イメージの出力ビットを更新するリプレイ表示器制御処理を実行する。
(Step S2900-1)
The main CPU 500a acquires a replay operation flag, and based on the acquired replay operation flag, executes a replay display control process which sets a stop display output bit off (output image) to turn on or off a bit corresponding to a replay display (not shown) indicating that the next play is a replay, and updates the output bit of the set output image.

(ステップS2900-3)
メインCPU500aは、ボーナス役が入賞した場合に、ボーナス遊技状態を制御するための各種パラメータを設定する役物作動図柄表示処理を実行する。
(Step S2900-3)
When a bonus combination is won, the main CPU 500a executes a combination operation symbol display process for setting various parameters for controlling the bonus game state.

(ステップS2900-5)
メインCPU500aは、ボーナス遊技状態において、ボーナス作動中獲得枚数が所定枚数に到達した場合に、遊技状態を非内部遊技状態に移行させるボーナス作動終了処理を実行する。
(Step S2900-5)
When the number of coins acquired during the bonus operation reaches a predetermined number in the bonus game state, the main CPU 500a executes a bonus operation end process for shifting the game state to a non-internal game state.

(ステップS2900-7)
メインCPU500aは、有利区間を管理する有利区間更新処理を実行する。
(Step S2900-7)
The main CPU 500a executes advantageous zone update processing to manage advantageous zones.

(ステップS2900-9)
メインCPU500aは、次遊技がAT演出状態でないかを判定する。その結果、次遊技がAT演出状態でないと判定した場合にはステップS2900-15に処理を移し、次遊技がAT演出状態であると判定した場合にはステップS2900-11に処理を移す。
(Step S2900-9)
The main CPU 500a judges whether the next game is in an AT presentation state. If it is judged that the next game is not in an AT presentation state, the process proceeds to step S2900-15. If it is judged that the next game is in an AT presentation state, the process proceeds to step S2900-11.

(ステップS2900-11)
メインCPU500aは、ボーナス遊技状態でないかを判定する。その結果、ボーナス遊技状態でないと判定した場合にはステップS2900-15に処理を移し、ボーナス遊技状態であると判定した場合にはステップS2900-13に処理を移す。
(Step S2900-11)
The main CPU 500a judges whether or not the bonus game state is in effect. If it is judged that the bonus game state is not in effect, the process proceeds to step S2900-15. If it is judged that the bonus game state is in effect, the process proceeds to step S2900-13.

(ステップS2900-13)
メインCPU500aは、区間表示器460を点灯させるための有利ランプフラグをオンにセットする。
(Step S2900-13)
The main CPU 500a sets the advantageous lamp flag on to turn on the section indicator 460.

(ステップS2900-15)
メインCPU500aは、有利区間に関するコマンドである演出コマンドを送信バッファにセットする演出コマンド設定処理を実行する。
(Step S2900-15)
The main CPU 500a executes a performance command setting process that sets a performance command, which is a command related to the advantageous zone, in a transmission buffer.

(ステップS2900-17)
メインCPU500aは、1遊技が終了したことを示す遊技終了コマンドを送信バッファにセットする。
(Step S2900-17)
The main CPU 500a sets a game end command, which indicates that one game has ended, in the transmission buffer.

(ステップS2900-19)
メインCPU500aは、外部信号を出力するための端子板信号出力処理を実行する。
(Step S2900-19)
The main CPU 500a executes a terminal board signal output process for outputting an external signal.

(ステップS2900-21)
メインCPU500aは、上記ステップS2900-7において有利区間を終了させるときに設定される演出用ウェイトタイマが0でないかを判定する。その結果、演出用ウェイトタイマが0でないと判定した場合にはステップS2900-21に処理を移し、演出用ウェイトタイマが0であると判定した場合にはステップS2900-23に処理を移す。
(Step S2900-21)
The main CPU 500a judges whether the effect wait timer, which is set when the advantageous zone is ended in the above step S2900-7, is 0. As a result, if it is judged that the effect wait timer is not 0, the process proceeds to step S2900-21, and if it is judged that the effect wait timer is 0, the process proceeds to step S2900-23.

(ステップS2900-23)
メインCPU500aは、遊技状態を示す遊技状態コマンドを送信バッファにセットする。
(Step S2900-23)
The main CPU 500a sets a game status command indicating the game status in a transmission buffer.

(ステップS2900-25)
メインCPU500aは、次遊技の開始を示す遊技開始コマンドを送信バッファにセットし、ステップS2100に処理を移す。
(Step S2900-25)
The main CPU 500a sets a game start command indicating the start of the next game in the transmission buffer, and transfers the process to step S2100.

ステップS2100からステップS2900までの一連の処理を通じて1遊技が実行される。以後は、ステップS2100からステップS2900までを繰り返すこととなる。 One game is executed through a series of processes from step S2100 to step S2900. After that, steps S2100 to S2900 are repeated.

次に、主制御基板500における電源断時退避処理およびタイマ割込み処理について説明する。 Next, we will explain the power-off evacuation process and timer interrupt process on the main control board 500.

(主制御基板500の電源断時退避処理)
図97は、主制御基板500における電源断時退避処理を説明するフローチャートである。メインCPU500aは、電源断検知回路を監視しており、電源電圧が所定値以下になると、割り込んで電源断時退避処理を実行する。
(Evacuation process when power is turned off for the main control board 500)
97 is a flow chart explaining the power-off save processing in the main control board 500. The main CPU 500a monitors the power-off detection circuit, and when the power supply voltage falls below a predetermined value, it interrupts and executes the power-off save processing.

(ステップS3000-1)
電源断予告信号が入力されると、メインCPU500aは、レジスタを退避する。
(Step S3000-1)
When the power-off warning signal is input, the main CPU 500a saves the registers.

(ステップS3000-3)
メインCPU500aは、電源断予告信号をチェックする。
(Step S3000-3)
The main CPU 500a checks the power-off warning signal.

(ステップS3000-5)
メインCPU500aは、電源断予告信号を検出しているかを判定する。その結果、電源断予告信号を検出していると判定した場合にはステップS3000-11に処理を移し、電源断予告信号を検出していないと判定した場合にはステップS3000-7に処理を移す。
(Step S3000-5)
The main CPU 500a judges whether a power-off warning signal has been detected. If it is judged that a power-off warning signal has been detected, the process proceeds to step S3000-11. If it is judged that a power-off warning signal has not been detected, the process proceeds to step S3000-7.

(ステップS3000-7)
メインCPU500aは、レジスタを復帰させる。
(Step S3000-7)
The main CPU 500a restores the registers.

(ステップS3000-9)
メインCPU500aは、割込みを許可するための処理を行い、当該電源断時退避処理を終了する。
(Step S3000-9)
The main CPU 500a performs processing to permit an interrupt, and ends the power-off save processing.

(ステップS3000-11)
メインCPU500aは、出力ポートの出力を停止する出力ポートクリア処理を実行する。
(Step S3000-11)
The main CPU 500a executes an output port clear process to stop the output of the output port.

(ステップS3000-13)
メインCPU500aは、別領域についての電源断時の退避処理を実行する。
(Step S3000-13)
The main CPU 500a executes a save process for another area when power is turned off.

(ステップS3000-15)
メインCPU500aは、メインRAM300cへのアクセスを禁止するために必要なRAMプロテクト設定処理を実行する。
(Step S3000-15)
The main CPU 500a executes a RAM protect setting process required to prohibit access to the main RAM 300c.

(ステップS3000-17)
メインCPU500aは、電源断発生監視時間を設定すべく、ループカウンタのカウンタ値に所定の電源断検出信号検出回数をセットする。
(Step S3000-17)
In order to set the power interruption occurrence monitoring time, the main CPU 500a sets the counter value of a loop counter to a predetermined number of times the power interruption detection signal has been detected.

(ステップS3000-19)
メインCPU500aは、上記ステップS3000-17でセットしたループカウンタの値を1減算する。
(Step S3000-19)
The main CPU 500a decrements the value of the loop counter set in step S3000-17 above by one.

(ステップS3000-21)
メインCPU500aは、ループカウンタのカウンタ値が0でないかを判定する。その結果、カウンタ値が0ではないと判定した場合にはステップS3000-19に処理を移し、カウンタ値が0であると判定した場合には上記したCPU初期化処理(ステップS1000)に移行する。
(Step S3000-21)
The main CPU 500a judges whether the counter value of the loop counter is 0. If it is judged that the counter value is not 0, the process proceeds to step S3000-19, and if it is judged that the counter value is 0, the process proceeds to the above-mentioned CPU initialization process (step S1000).

なお、実際に電源断が生じた場合には、ステップS3000-19~ステップS3000-21をループしている間にスロットマシン400の稼働が停止する。 If a power outage actually occurs, operation of the slot machine 400 will stop while steps S3000-19 to S3000-21 are being looped.

(主制御基板500のタイマ割込み処理)
図98は、主制御基板500におけるタイマ割込み処理を説明するフローチャートである。主制御基板500には、所定の周期(同時回し参考例では1.49ミリ秒、以下「1.49ms」という)毎にクロックパルスを発生させるリセット用クロックパルス発生回路が設けられている。そして、リセット用クロックパルス発生回路によって、クロックパルスが発生すると、割り込んで、以下のタイマ割込み処理が実行される。
(Timer interrupt processing of main control board 500)
98 is a flow chart explaining the timer interrupt process in the main control board 500. The main control board 500 is provided with a reset clock pulse generating circuit that generates a clock pulse every predetermined period (1.49 milliseconds in the simultaneous rotation reference example, hereinafter referred to as "1.49 ms"). When a clock pulse is generated by the reset clock pulse generating circuit, an interrupt occurs and the following timer interrupt process is executed.

(ステップS3100-1)
メインCPU500aは、レジスタを退避する。
(Step S3100-1)
The main CPU 500a saves the registers.

(ステップS3100-3)
メインCPU500aは、割込みフラグをクリアする。
(Step S3100-3)
The main CPU 500a clears the interrupt flag.

(ステップS3100-5)
メインCPU500aは、各種の入力ポートイメージを読み込み、最新のスイッチ状態を正確に取得するためのポート入力処理を実行する。
(Step S3100-5)
The main CPU 500a reads various input port images and executes port input processing to accurately obtain the latest switch states.

(ステップS3100-7)
メインCPU500aは、セットされた出力イメージを出力ポートに出力し、メインクレジット表示部430、メイン払出表示部432、投入枚数表示器、スタート表示器、ストップスイッチ420a、420b、420cの表示器、リプレイ表示器、区間表示器460を点灯制御するダイナミックポート出力処理を実行する。
(Step S3100-7)
The main CPU 500a outputs the set output image to the output port and executes a dynamic port output process which controls the lighting of the main credit display section 430, the main payout display section 432, the number of inserted coins indicator, the start indicator, the indicators of the stop switches 420a, 420b, 420c, the replay indicator, and the section indicator 460.

(ステップS3100-9)
メインCPU500aは、タイマ割込み用フェーズを更新する。なお、タイマ割込み用フェーズは、0~3のいずれかであり、ここでは、タイマ割込み用フェーズが0、1、2の場合には1加算され、タイマ割込み用フェーズが3の場合には0に変更される。
(Step S3100-9)
The main CPU 500a updates the timer interrupt phase. The timer interrupt phase can be any of 0 to 3. In this example, if the timer interrupt phase is 0, 1, or 2, 1 is added, and if the timer interrupt phase is 3, it is changed to 0.

(ステップS3100-11)
メインCPU500aは、送信バッファに格納されたコマンドを副制御基板502に送信するためのサブコマンド送信処理を行う。
(Step S3100-11)
The main CPU 500 a performs a sub-command transmission process to transmit the commands stored in the transmission buffer to the sub-control board 502 .

(ステップS3100-13)
メインCPU500aは、ステッピングモータ452を制御するステッピングモータ制御処理を実行する。
(Step S3100-13)
The main CPU 500 a executes a stepping motor control process for controlling the stepping motor 452 .

(ステップS3100-15)
メインCPU500aは、メダル払出装置442へ出力する出力イメージを出力する出力ポートイメージ出力処理を実行する。
(Step S3100-15)
The main CPU 500 a executes an output port image output process that outputs an output image to be output to the medal payout device 442 .

(ステップS3100-17)
メインCPU500aは、各種乱数を更新する乱数更新処理を実行する。
(Step S3100-17)
The main CPU 500a executes a random number update process to update various random numbers.

(ステップS3100-19)
メインCPU500aは、エラーに対応する外部信号(外部信号4、5)を外部に出力するためにエラーを検出する不正監視処理を実行する。
(Step S3100-19)
The main CPU 500a executes fraud monitoring processing to detect errors in order to output external signals (external signals 4 and 5) corresponding to the errors to the outside.

(ステップS3100-21)
メインCPU500aは、上記ステップS3100-9で更新したタイマ割込み処理用フェーズに対応するモジュール(サブルーチン)を実行する。ここで、タイマ割込み処理用フェーズは0~3のいずれかに設定されており、タイマ割込み処理用フェーズ0~3それぞれに対応するモジュールが1つずつ設けられているため(合計4つ)、1つのモジュールは、タイマ割込み処理の4回に1回(5.96ms毎に)実行されることになる。例えば、各種タイマを減算する時間監視処理を実行するモジュールが1つのタイマ割込み処理用フェーズに対応付けられている。
(Step S3100-21)
The main CPU 500a executes a module (subroutine) corresponding to the timer interrupt processing phase updated in step S3100-9. Here, the timer interrupt processing phase is set to any one of 0 to 3, and one module is provided corresponding to each of the timer interrupt processing phases 0 to 3 (four in total), so that one module is executed once every four timer interrupt processing times (every 5.96 ms). For example, a module that executes a time monitoring process that subtracts from various timers is associated with one timer interrupt processing phase.

(ステップS3100-23)
メインCPU500aは、試験信号を外部に出力する試験信号出力処理を実行する。
(Step S3100-23)
The main CPU 500a executes a test signal output process for outputting a test signal to the outside.

(ステップS3100-25)
メインCPU500aは、各種の入力ポートイメージを読み込み、最新のスイッチ状態を正確に取得するためのポート入力処理を実行する。
(Step S3100-25)
The main CPU 500a reads various input port images and executes port input processing to accurately obtain the latest switch states.

(ステップS3100-27)
メインCPU500aは、レジスタを復帰する。
(Step S3100-27)
The main CPU 500a restores the registers.

(ステップS3100-29)
メインCPU300aは、割込みを許可し、当該タイマ割込み処理を終了する。
(Step S3100-29)
The main CPU 300a permits the interrupt and ends the timer interrupt process.

また、上述した実施形態では、主制御基板500と副制御基板502とが、遊技を進行するための機能部を分担するように配したが、主制御基板500の機能部を副制御基板502に配しても、副制御基板502の機能部を主制御基板500に配してもよく、また、全ての機能部を1の制御基板に纏めて配することもできる。 In addition, in the above-described embodiment, the main control board 500 and the sub-control board 502 are arranged to share the functional parts for progressing the game, but the functional parts of the main control board 500 may be arranged on the sub-control board 502, or the functional parts of the sub-control board 502 may be arranged on the main control board 500, or all the functional parts may be arranged together on a single control board.

また、上述した実施形態では、AT演出状態が1種類のみ設けられるようにしたが、例えば、AT演出状態の継続遊技数の上乗せ特化ゾーンなど、複数種類のAT演出状態が設けられるようにしてもよい。 In addition, in the above-described embodiment, only one type of AT presentation state is provided, but multiple types of AT presentation states may be provided, such as a specialized zone for adding the number of continuous plays in the AT presentation state.

また、上記した実施形態では、遊技価値としてのメダルを用いて遊技を行うようにしたが、遊技価値は電気的な情報であってもよい(所謂メダルレスであってもよい)。この場合、当選役が入賞したときに、当選役に対応する価値量を遊技者に電気的な情報で付与すればよい。 In the above embodiment, the game is played using medals as the game value, but the game value may be electrical information (it may be so-called medalless). In this case, when a winning combination is achieved, the amount of value corresponding to the winning combination may be given to the player in the form of electrical information.

また、上述した主制御基板500および副制御基板502が行う各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいはサブルーチンによる処理を含んでもよい。 Furthermore, each process performed by the main control board 500 and the sub-control board 502 described above does not necessarily have to be performed in chronological order according to the order described in the flowchart, and may include parallel or subroutine processing.

また、上述した主制御基板500および副制御基板502が行う各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいはサブルーチンによる処理を含んでもよい。 Furthermore, each process performed by the main control board 500 and the sub-control board 502 described above does not necessarily have to be performed in chronological order according to the order described in the flowchart, and may include parallel or subroutine processing.

<主制御基板のCPU周辺の構成>
図99は、メインCPU300a周辺の電気的な接続を説明するための図である。メインCPU300aは、CPUコア700とバスコントローラ702とを含む。CPUコア700は、BC端子から出力されるバス制御信号(Bus Cont)を通じてバスコントローラ702を制御し、メインROM300b、メインRAM300c、もしくは、入出力部704からデータを読み出し、または、メインRAM300cや入出力部704にデータを書き込む。なお、ここでは、メインCPU300aとして、Z80系CPUをベースとするエルイーテック(LETech)社が販売するマイクロプロセッサを用いている。なお、ここでは、パチンコ機のメインCPU300a、メイン、ROM300b、メインRAM300cを挙げて説明するが、スロットマシン400のメインCPU500a、メイン、ROM500b、メインRAM500cに置き替え可能なのは言うまでもない。
<Main control board CPU peripheral configuration>
FIG. 99 is a diagram for explaining electrical connections around the main CPU 300a. The main CPU 300a includes a CPU core 700 and a bus controller 702. The CPU core 700 controls the bus controller 702 through a bus control signal (Bus Cont) output from the BC terminal, and reads data from the main ROM 300b, the main RAM 300c, or the input/output unit 704, or writes data to the main RAM 300c or the input/output unit 704. Here, a microprocessor based on a Z80 series CPU and sold by LETech is used as the main CPU 300a. Here, the main CPU 300a, main ROM 300b, and main RAM 300c of a pachinko machine are described, but it goes without saying that they can be replaced with the main CPU 500a, main ROM 500b, and main RAM 500c of a slot machine 400.

例えば、メインROM300b、メインRAM300c、または、入出力部704からデータを読み出す場合、バスコントローラ702は、16ビットのアドレス(A[16])信号を出力し、デコーダ706a、706b、706cを通じてメインROM300b、メインRAM300c、または、入出力部704のいずれかを特定するとともに、リード(RD)信号を制御して、メインROM300b、メインRAM300c、または、入出力部704からデータ(D[8])信号を読み出す。また、メインRAM300c、または、入出力部704にデータを書き込む場合、バスコントローラ702は、アドレス(A[16])信号およびデータ(D[8])信号を出力し、デコーダ706b、706cを通じてメインRAM300c、または、入出力部704のいずれかを特定するとともに、ライト(WR)信号を制御して、メインRAM300c、または、入出力部704にデータ(D[8])信号を書き込む。 For example, when reading data from main ROM 300b, main RAM 300c, or input/output unit 704, the bus controller 702 outputs a 16-bit address (A[16]) signal, identifies either main ROM 300b, main RAM 300c, or input/output unit 704 through decoders 706a, 706b, 706c, and controls the read (RD) signal to read a data (D[8]) signal from main ROM 300b, main RAM 300c, or input/output unit 704. Furthermore, when writing data to the main RAM 300c or the input/output unit 704, the bus controller 702 outputs an address (A[16]) signal and a data (D[8]) signal, and identifies either the main RAM 300c or the input/output unit 704 via the decoders 706b and 706c, and controls the write (WR) signal to write the data (D[8]) signal to the main RAM 300c or the input/output unit 704.

ここでは、後述するように、入出力部704のアドレス空間を、メインROM300bおよびメインRAM300cのアドレス空間と一体化している。したがって、従来、メモリとI/Oのいずれにアクセスするかを特定するための信号を出力するメモリリクエスト(MREQ)端子およびI/Oリクエスト(IORQ)端子を設けていない。かかる2端子を任意の他の信号に割り当て直すことで、プログラム開発の自由度を高めることができる。 As described below, the address space of the input/output unit 704 is integrated with the address spaces of the main ROM 300b and the main RAM 300c. Therefore, unlike the conventional technology, there is no memory request (MREQ) terminal or I/O request (IORQ) terminal that outputs a signal to specify whether to access memory or I/O. By reassigning these two terminals to any other signal, the degree of freedom in program development can be increased.

また、CPUコア700には、割込処理の開始トリガとなる割り込み/待ち(INT/WAIT)信号、最優先で割込処理を実行できるマスク不可割込(NMI)信号、バス信号をハイインピーダンスに遷移可能なバスリクエスト(BUSREQ)信号等の外部信号も入力される。 The CPU core 700 also receives external signals such as an interrupt/wait (INT/WAIT) signal that triggers the start of interrupt processing, a non-maskable interrupt (NMI) signal that allows interrupt processing to be executed with the highest priority, and a bus request (BUSREQ) signal that can transition a bus signal to high impedance.

図100は、CPUコア700の内部構成を示したブロック図である。CPUコア700は、外部入力ユニット710、状態制御ユニット712、中央制御ユニット714、レジスタユニット716、算術論理演算装置(ALU)718を含む。外部入力ユニット710は、外部信号を受信し、その外部信号に基づいた制御情報を状態制御ユニット712および中央制御ユニット714に出力する。 Figure 100 is a block diagram showing the internal configuration of a CPU core 700. The CPU core 700 includes an external input unit 710, a state control unit 712, a central control unit 714, a register unit 716, and an arithmetic logic unit (ALU) 718. The external input unit 710 receives an external signal and outputs control information based on the external signal to the state control unit 712 and the central control unit 714.

状態制御ユニット712は、入力された制御情報に基づいて、内部状態(RESET、命令フェッチ、命令デコード、演算、メモリロード、メモリストア、HALT等)を管理および遷移させてCPUコア700の動作状態を決定するとともに、その動作状態に基づいた制御情報を中央制御ユニット714に出力する。 The state control unit 712 manages and transitions the internal state (RESET, instruction fetch, instruction decode, operation, memory load, memory store, HALT, etc.) based on the input control information to determine the operating state of the CPU core 700, and outputs control information based on that operating state to the central control unit 714.

中央制御ユニット714は、バスコントローラ702を経由して入力された入力データ(DI[8])からオペコード(命令)を抽出し、命令デコーダによってデコードしたコマンドに基づいてALU718を制御する。また、中央制御ユニット714は、デコードしたコマンドによりレジスタユニット716の各レジスタから必要な情報を取得したり、各レジスタを更新したりする。 The central control unit 714 extracts an opcode (instruction) from the input data (DI[8]) input via the bus controller 702, and controls the ALU 718 based on the command decoded by the instruction decoder. The central control unit 714 also obtains necessary information from each register of the register unit 716 and updates each register based on the decoded command.

レジスタユニット716は、セレクタポート722a、722b、722c、入力側バンクセレクタ724、第1レジスタバンク726、第2レジスタバンク728、出力側バンクセレクタ730、アドレスポート732、個別レジスタ734を含む。なお、個別レジスタ734には、次に実行すべきプログラムのアドレスを示す16ビットのプログラムカウンタ(PC)、割込モード時に使用される8ビットのインタラプト(I)レジスタ、オペコードフェッチサイクルを計数する8ビットのリフレッシュ(R)レジスタ、割込の許可/禁止を制御する8ビットの割込許可(IFF)レジスタが含まれる。 The register unit 716 includes selector ports 722a, 722b, and 722c, an input bank selector 724, a first register bank 726, a second register bank 728, an output bank selector 730, an address port 732, and individual registers 734. The individual registers 734 include a 16-bit program counter (PC) that indicates the address of the program to be executed next, an 8-bit interrupt (I) register that is used in interrupt mode, an 8-bit refresh (R) register that counts opcode fetch cycles, and an 8-bit interrupt enable (IFF) register that controls whether interrupts are enabled or disabled.

また、レジスタユニット716には、大役抽選に係る種々の乱数値(大当たり決定乱数、当たり図柄乱数、リーチグループ決定乱数、リーチモード決定乱数、変動パターン乱数、当たり決定乱数)を取得するための乱数発生器(図示せず)が対応付けられ、入力ポート(FE73h~FE9Ch)を介してラッチされた乱数値が取得される。 The register unit 716 is also associated with a random number generator (not shown) for obtaining various random number values related to the big prize lottery (jackpot determining random number, winning symbol random number, reach group determining random number, reach mode determining random number, variation pattern random number, winning random number), and the random number values latched via the input ports (FE73h to FE9Ch) are obtained.

乱数発生器は、システムクロック(外部入力を2分周したクロック)で動作し、所定の最大値未満の乱数を発生する。なお、乱数発生器は、乱数の最大値を設定可能な乱数発生器である最大値設定乱数発生器として、16ビットの最大値を設定可能な乱数発生器が4チャンネル、8ビットの最大値を設定可能な乱数発生器が8チャンネル準備されている。ここで、16ビットの最大値設定乱数発生器は、乱数更新周期が32~47クロックの範囲で選択でき、最大値の設定範囲が256~65535の範囲で設定できる。また、8ビットの最大値設定乱数発生器は、乱数更新周期が16~31クロックの範囲で選択でき、最大値の設定範囲が4チャンネルで16~255の範囲で設定でき、他の4チャンネルで64~255の範囲で設定できる。また、乱数の最大値が固定された乱数発生器である最大値固定乱数発生器として、16ビットの最大値を設定可能な乱数発生器が4チャンネル、8ビットの最大値を設定可能な乱数発生器が8チャンネル準備されている。ここで、16ビットの最大値固定乱数発生器は、乱数更新周期が1クロックに、最大値が65535に固定されている。また、8ビットの最大値固定乱数発生器は、乱数更新周期が1クロックに、最大値が255に固定されている。 The random number generator operates on the system clock (a clock obtained by dividing the external input by two) and generates random numbers less than a predetermined maximum value. The random number generator is a random number generator that can set the maximum value of the random number. Four channels of random number generators that can set a 16-bit maximum value and eight channels of random number generators that can set an 8-bit maximum value are prepared as maximum value setting random number generators that can set the maximum value of the random number. Here, the 16-bit maximum value setting random number generators can select a random number update period in the range of 32 to 47 clocks, and the maximum value setting range can be set in the range of 256 to 65535. The 8-bit maximum value setting random number generators can select a random number update period in the range of 16 to 31 clocks, and the maximum value setting range can be set in the range of 16 to 255 in four channels and in the range of 64 to 255 in the other four channels. The random number generators that have a fixed maximum value are a random number generator that can set a 16-bit maximum value and eight channels of random number generators that can set an 8-bit maximum value. Here, the 16-bit maximum value fixed random number generator has a random number update period of 1 clock and a maximum value fixed to 65535. Also, the 8-bit maximum value fixed random number generator has a random number update period of 1 clock and a maximum value fixed to 255.

なお、乱数の種類が足りない場合、ハードウェア乱数生成部(乱数発生器)から取得した乱数値に、プログラム内において所定の数値を乗じ、また、除算することで他の乱数を生成する(ソフトウェア乱数生成部)ことも可能である。 If there are not enough random numbers, it is possible to generate other random numbers (software random number generator) by multiplying or dividing the random number obtained from the hardware random number generator (random number generator) by a specified number within the program.

図101は、レジスタの構成を説明した図である。レジスタユニット716には、第1レジスタバンク(バンク0)726と、第1レジスタバンク726と対(ペア)となる第2レジスタバンク(バンク1)728が設けられている。また、第1レジスタバンク726には、メインレジスタ群(表レジスタ群)726aと、メインレジスタ群726aと対となるサブレジスタ群(裏レジスタ群)726bが設けられ、第2レジスタバンク728には、メインレジスタ群728aと、メインレジスタ群728aと対となるサブレジスタ群728bが設けられている。第1レジスタバンク726のメインレジスタ群726aおよびサブレジスタ群726b、ならびに、第2レジスタバンク728のメインレジスタ群728aおよびサブレジスタ群728bには、いずれも、8ビットのレジスタ(Q、A、F、B、C、D、E、H、L)と、16ビットのレジスタ(IX、IY)が含まれる。ただし、メインレジスタ群726a、728aには、サブレジスタ群726b、728bと異なり、さらに、8ビットのレジスタ(U)と16ビットのレジスタ(SP)が含まれている。メインCPU300a、500aは、第1レジスタバンク726と第2レジスタバンク728とを切り換えて利用し、後述するFレジスタにおけるレジスタバンク指定レジスタRBの示す一方のレジスタバンクのみにアクセスでき、そのレジスタバンクと対になる他方のレジスタバンクには同時にアクセスすることができない。 Figure 101 is a diagram explaining the configuration of the register. The register unit 716 is provided with a first register bank (bank 0) 726 and a second register bank (bank 1) 728 that is paired with the first register bank 726. The first register bank 726 is provided with a main register group (front register group) 726a and a sub-register group (back register group) 726b that is paired with the main register group 726a, and the second register bank 728 is provided with a main register group 728a and a sub-register group 728b that is paired with the main register group 728a. The main register group 726a and the sub-register group 726b of the first register bank 726, and the main register group 728a and the sub-register group 728b of the second register bank 728 each include 8-bit registers (Q, A, F, B, C, D, E, H, L) and 16-bit registers (IX, IY). However, unlike the sub-register groups 726b and 728b, the main register groups 726a and 728a further include an 8-bit register (U) and a 16-bit register (SP). The main CPUs 300a and 500a switch between the first register bank 726 and the second register bank 728, and can only access one of the register banks indicated by the register bank designation register RB in the F register (described later), and cannot simultaneously access the other register bank that is paired with that register bank.

図101に示すレジスタのうち、Qレジスタは、拡張レジスタとして、各レジスタバンクに2セット設けられ、一部のコマンドにおいて用いられるアドレスの上位バイトを格納する8ビットのレジスタである。かかるQレジスタの値として、例えば、F0hが設定されている場合、メインCPU300a、500aは、メインRAM300cのF000h~F0FFhへのアクセスにQレジスタを利用することができる。Uレジスタは、拡張レジスタとして、各レジスタバンクに1セット設けられ、一部のコマンドにおいて用いられるアドレスの上位バイトを格納する8ビットのレジスタである。かかるUレジスタの値として、例えば、FEhが設定されている場合、メインCPU300a、500aは、FE00h~FFFFhの入出力部704に接続された内蔵デバイス(タイマ、乱数発生器、外部入出力回路等)へのアクセスにUレジスタを利用することができる。Aレジスタは、演算処理やデータ転送に使う8ビットのアキュムレータとしても機能する汎用レジスタである。Fレジスタは、各種演算結果を保持する8ビットのフラグレジスタである。ここで、Fレジスタの各ビットは、図101に示すように、最上位ビット(MSB:Most Significant Bit)から最下位ビット(LSB:Least Significant Bit)にかけて、Sは、演算結果が負のとき1にセットされるサインフラグであり、Zは、演算の結果、全ビットが0のとき1にセットされるゼロフラグ(第1ゼロフラグ)であり、TZは、データ転送命令(LD;ロード)の実行により、全ビットが0のとき1にセットされる(値の変わる)遊技機用拡張仕様の特定ビットフラグ(第2ゼロフラグ)であり、ティーゼットフラグと呼ぶ場合もある。Hは、プログラマーが関与できないハーフキャリーフラグであり、RB(レジスタバンク指定レジスタ)は、現在のレジスタバンク(第1レジスタバンク726=0、第2レジスタバンク728=1)を示すレジスタバンクモニタであり、P/Vは、パリティオーバーフローフラグであり、Nは、プログラマーが関与できない加減算フラグであり、Cは、演算の結果、桁上げまたはボロー発生時に1がセットされるキャリーフラグである。なお、Fレジスタは、AレジスタとペアレジスタAFを構成する。 Of the registers shown in FIG. 101, the Q register is an 8-bit register that is provided as an extended register in two sets in each register bank and stores the upper byte of an address used in some commands. When, for example, F0h is set as the value of the Q register, the main CPU 300a, 500a can use the Q register to access F000h to F0FFh in the main RAM 300c. The U register is an 8-bit register that is provided as an extended register in one set in each register bank and stores the upper byte of an address used in some commands. When, for example, FEh is set as the value of the U register, the main CPU 300a, 500a can use the U register to access built-in devices (timers, random number generators, external input/output circuits, etc.) connected to the input/output unit 704 at FE00h to FFFFh. The A register is a general-purpose register that also functions as an 8-bit accumulator used for arithmetic processing and data transfer. The F register is an 8-bit flag register that holds various arithmetic results. Here, as shown in FIG. 101, from the most significant bit (MSB) to the least significant bit (LSB), S is a sign flag that is set to 1 when the result of the operation is negative, Z is a zero flag (first zero flag) that is set to 1 when all bits are 0 as a result of the operation, TZ is a specific bit flag (second zero flag) of the gaming machine expansion specification that is set to 1 (value changes) when all bits are 0 by execution of a data transfer instruction (LD; load), and is sometimes called a TZ flag. H is a half carry flag that cannot be controlled by the programmer, RB (register bank designation register) is a register bank monitor that indicates the current register bank (first register bank 726 = 0, second register bank 728 = 1), P/V is a parity overflow flag, N is an addition/subtraction flag that cannot be controlled by the programmer, and C is a carry flag that is set to 1 when a carry or borrow occurs as a result of the operation. The F register and the A register form a pair register AF.

また、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタは、各レジスタバンクに2セット設けられた8ビットの汎用レジスタであり、それぞれ予め組合せが定められている16ビットのペアレジスタ(例えば、レジスタBC、DE、HL、その他複数の組み合わせが存在する)を構成して利用される。IXレジスタ、IYレジスタは、インデックスアドレッシングに用いられる16ビットの汎用レジスタである。SP(スタックポインタ)レジスタは、16ビットであり、スタックポインタとなるアドレスを格納する。Q’レジスタ、A’レジスタ、F’レジスタ、B’レジスタ、C’レジスタ、D’レジスタ、E’レジスタ、H’レジスタ、L’レジスタ、IX’レジスタ、IY’レジスタは、Qレジスタ、Aレジスタ、Fレジスタ、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ、IXレジスタ、IYレジスタのメインレジスタ群726a、728aとの交換命令または転送命令によりデータ(内容)交換またはデータ転送可能なサブレジスタ群726b、728bであり、A’レジスタとF’レジスタでペアレジスタAF’を構成し、B’レジスタとC’レジスタでペアレジスタBC’を構成し、D’レジスタとE’レジスタでペアレジスタDE’を構成し、H’レジスタとL’レジスタでペアレジスタHL’を構成して利用される。なお、ペアレジスタはBC’、DE’、HL’に限らず、その他複数の組み合わせが存在する。一方、Uレジスタ、SPレジスタについては、各レジスタバンクに1セット設けられている。 The B, C, D, E, H, and L registers are 8-bit general-purpose registers, two sets of which are provided in each register bank, and are used as 16-bit pair registers with predefined combinations (for example, registers BC, DE, HL, and several other combinations exist). The IX and IY registers are 16-bit general-purpose registers used for index addressing. The SP (stack pointer) register is 16 bits and stores the address that serves as the stack pointer. The Q', A', F', B', C', D', E', H', L', IX', and IY' registers are sub-registers 726b and 728b that can exchange or transfer data (contents) with the main registers 726a and 728a of the Q, A, F, B, C, D, E, H, L, IX, and IY registers, by exchange or transfer instructions. The A' and F' registers form a pair register AF', the B' and C' registers form a pair register BC', the D' and E' registers form a pair register DE', and the H' and L' registers form a pair register HL'. Note that the pair registers are not limited to BC', DE', and HL', and there are several other combinations. On the other hand, one set of the U and SP registers is provided in each register bank.

ところで、上述したように、主制御基板300、500においては、メインCPU300aが、メインROM300bに格納されたプログラムに基づきメインRAM300cと協働して遊技の進行を制御する。これらの機能部を実行するためのプログラムは、メインROM300bおよびメインRAM300cの所定の領域(使用領域)に配される。 As described above, in the main control boards 300 and 500, the main CPU 300a controls the progress of the game in cooperation with the main RAM 300c based on the programs stored in the main ROM 300b. The programs for executing these functional parts are stored in designated areas (usage areas) of the main ROM 300b and the main RAM 300c.

図102は、メモリマップを示す説明図である。なお、パチンコ機におけるメモリマップについては、図5を用いて既に説明されているので、ここでは、スロットマシン400のメモリマップを挙げて説明する。メインROM500bには、0000h~3FFFh(12kbyte)のメモリ空間が割り当てられ、メインRAM500cには、F000h~F3FFh(1kbyte)のメモリ空間が割り当てられ、入出力部704には、FE00h~FFFFh(512byte)のメモリ空間が割り当てられている。なお、プログラムの命令コードはアセンブラ言語で記述されている。ここで、プログラムは、命令コードで構成されたものであり、コンピュータに読み出され、データやワークエリアと協働して所定の処理を実現することができる。 Figure 102 is an explanatory diagram showing a memory map. Note that the memory map in a pachinko machine has already been explained using Figure 5, so here, the memory map of the slot machine 400 will be explained. The main ROM 500b is assigned a memory space of 0000h to 3FFFh (12 kbytes), the main RAM 500c is assigned a memory space of F000h to F3FFh (1 kbyte), and the input/output unit 704 is assigned a memory space of FE00h to FFFFh (512 bytes). Note that the instruction codes of the program are written in assembler language. Here, a program is composed of instruction codes, and is read by a computer to realize a specified process in cooperation with data and a work area.

メインROM500bの0000h~1DF3hのメモリ空間には使用領域が割り当てられている。使用領域は、遊技の進行を制御する遊技制御処理を実行するためのプログラムやデータを格納する領域である。具体的に、0000h~11FFh(4.5kbyte)に制限されたメモリ空間(制御領域)に、初期化手段600、ベット手段602、当選種別抽選手段604、リール制御手段606、判定手段608、払出制御手段610、遊技状態制御手段612、演出状態制御手段614、コマンド送信手段616を機能させて遊技の進行を制御する遊技制御処理を実行するためのプログラムの命令コードが格納され、1200h~1DF3h(3.0kbyte)に制限されたメモリ空間(データ領域)に、遊技制御処理のプログラムに用いられるデータが格納されている。また、1E00h~1FFFhのメモリ空間にはコメント領域が割り当てられ、3FC0h~3FFFhのメモリ空間にはプログラム管理領域が割り当てられている。また、2000h~3FBFhのメモリ空間には別領域(使用外領域)が割り当てられている。別領域は、後述するように、使用領域に格納することが定められていないプログラムやデータを格納する領域である。具体的に、2000h~3FBFhのメモリ空間には、遊技の進行に影響を及ぼさない、遊技機用試験処理やセキュリティ関連処理のうち一部または全部の処理(以降では、単に遊技制御外処理という場合がある)を遂行するプログラムの命令コードおよびプログラムデータが格納されている。ここで、遊技機用試験処理は、回胴式遊技機用試験機の接続仕様書(第四版)に記載されているスロットマシン400の試験処理である。セキュリティ関連処理は、第三者の不正防止や不具合発見を目的とした異常状態を特定する処理であり、例えば、上述したバックアップフラグの判定やチェックサムの実行も含まれる。なお、別領域に記憶容量の制限はなく、図102の例では、使用領域、コメント領域、および、プログラム管理領域以外の記憶領域に、自由に割り当てることができる。 A usage area is allocated to the memory space from 0000h to 1DF3h of the main ROM 500b. The usage area is an area for storing programs and data for executing game control processing that controls the progress of the game. Specifically, the memory space (control area) limited to 0000h to 11FFh (4.5 kbytes) stores instruction codes for a program for executing game control processing that controls the progress of the game by operating the initialization means 600, betting means 602, winning type lottery means 604, reel control means 606, judgment means 608, payout control means 610, game status control means 612, presentation status control means 614, and command transmission means 616, and the memory space (data area) limited to 1200h to 1DF3h (3.0 kbytes) stores data used in the game control processing program. In addition, a comment area is assigned to the memory space from 1E00h to 1FFFh, and a program management area is assigned to the memory space from 3FC0h to 3FFFh. In addition, another area (non-used area) is assigned to the memory space from 2000h to 3FBFh. The other area is an area for storing programs and data that are not specified to be stored in the used area, as described later. Specifically, the memory space from 2000h to 3FBFh stores instruction codes and program data of programs that perform part or all of the gaming machine test processing and security-related processing (hereinafter, sometimes simply referred to as non-game control processing) that do not affect the progress of the game. Here, the gaming machine test processing is the test processing of the slot machine 400 described in the Connection Specifications (4th Edition) of the Test Machine for Slot Machines. The security-related processing is a process for identifying an abnormal state for the purpose of preventing fraud by a third party and discovering defects, and includes, for example, the determination of the backup flag and the execution of a checksum as described above. There is no limit to the storage capacity of the separate areas, and in the example of Figure 102, they can be freely assigned to storage areas other than the usage area, comment area, and program management area.

上記のように、メインCPU500aは、遊技制御処理のみならず、遊技機用試験処理、セキュリティ関連処理(遊技制御外処理)も遂行する場合がある。しかし、使用領域の記憶容量は予め定められており、例えば、図102に示したように、制御領域が4.5kbyteに制限され、データ領域が3.0kbyteに制限されている。したがって、遊技制御処理のみならず、遊技機用試験処理、セキュリティ関連処理のプログラムやデータまでも使用領域に配すると、その分、遊技制御処理を行うための記憶領域が制限されてしまう。ここで、遊技制御処理を実行するためのプログラム(使用プログラム)やデータは、必ず使用領域に格納しなければならないが、遊技制御処理以外の遊技の進行に影響を及ぼさない遊技制御外処理(遊技機用試験処理、セキュリティ関連処理等)を実行するためのプログラム(別プログラム)やデータは使用領域および別領域のいずれにも格納することができる。そこで、セキュリティ関連処理に該当する処理であるバックアップフラグの判定処理やチェックサムの実行処理を実行するためのプログラムやデータの少なくとも一部を、使用領域とは異なる(使用領域以外の)記憶領域のうちの一部である別領域に記述している。 As described above, the main CPU 500a may perform not only game control processing, but also game machine test processing and security-related processing (game control non-processing). However, the storage capacity of the usage area is predetermined; for example, as shown in FIG. 102, the control area is limited to 4.5 kbytes, and the data area is limited to 3.0 kbytes. Therefore, if not only game control processing but also programs and data for game machine test processing and security-related processing are placed in the usage area, the storage area for performing game control processing will be limited accordingly. Here, programs (usage programs) and data for executing game control processing must be stored in the usage area, but programs (separate programs) and data for executing game control non-processing (game machine test processing, security-related processing, etc.) that do not affect the progress of the game other than game control processing can be stored in either the usage area or the separate area. Therefore, at least some of the programs and data for executing the security-related processes, such as the backup flag determination process and the checksum execution process, are written in a separate area that is part of a memory area different from the used area (other than the used area).

このように使用領域で遂行される処理(ここでは、遊技制御処理)と、必ずしも使用領域で行わなくてよい処理(ここでは、セキュリティ関連処理)とが混在している場合には、遊技制御処理を実行するためのプログラム(使用プログラム)やデータを使用領域に格納し、使用領域で行わなくてよい、遊技制御処理以外の遊技の進行に影響を及ぼさない遊技制御外処理(セキュリティ関連処理)を実行するためのプログラム(別プログラム)やデータを別領域に格納することが望ましい。このように記憶領域を複数に区分することで、別領域に移動させたプログラムの分だけ使用領域の記憶領域(容量)に余裕が生じる。したがって、その分、使用領域を遊技制御処理(使用プログラム)に割り当てることが可能となる。 In this way, when there is a mixture of processing that is performed in the use area (here, game control processing) and processing that does not necessarily have to be performed in the use area (here, security-related processing), it is desirable to store the program (use program) and data for executing the game control processing in the use area, and store the program (separate program) and data for executing non-game control processing (security-related processing) that does not have to be performed in the use area and does not affect the progress of the game other than the game control processing in a separate area. By dividing the memory area into multiple areas in this way, there is more space in the memory area (capacity) of the use area by the amount of the programs moved to the separate area. This makes it possible to allocate that much of the use area to game control processing (use program).

ただし、上記のように記憶領域を、使用領域、別領域とで役割分担した場合においても、遊技機の公正さは担保されなくてはならない。そこで、遊技機の公正さを担保しつつ、使用領域と別領域とで適切に役割分担するために、以下の(1)~(6)の条件を規定する。 However, even if the memory area is divided into a usage area and a separate area as described above, the fairness of the gaming machine must be guaranteed. Therefore, in order to ensure the fairness of the gaming machine while appropriately dividing the roles between the usage area and the separate area, the following conditions (1) to (6) are stipulated.

条件(1)、別領域に配置するプログラムについては、遊技機の試験に必要な信号の出力(遊技機用試験処理)および不正防止(セキュリティ関連処理)を目的として使用され、遊技の公正を害さない(損なわない)ものであること。条件(2)、使用領域と別領域の制御領域およびデータ領域については、それぞれを明示的に区別された領域に配置すること。条件(3)、別領域に配置するプログラム(別プログラム)は、使用領域のプログラム(使用プログラム)から静的に呼び出された上で実行されること。また、その際のプログラムリストにおいては、呼び出し先アドレスが明らかに記載されていること。条件(4)、別領域に配置するプログラムは機能ごとにモジュール化し、呼び出された際には、使用領域で利用している全レジスタの内容を保護すること。条件(5)、使用領域または別領域から互いの領域にあるRAMへのアクセスは参照のみ可能とし、更新は不可とすること。条件(6)、別領域の制御領域から使用領域の制御領域にあるサブルーチンを呼び出すことは不可とすること。なお、使用領域に割込処理を行うサブルーチンを設けることから、別領域の制御領域を使用する際には、割込禁止にする必要が生じる。なお、遊技制御処理を適切に遂行するために、割込禁止を行ってから割込禁止を解除するまでの時間は、遊技制御処理における割込処理の間隔(例えば1.49msec)以内とならなければならない。したがって、別領域の制御領域を使用するサブルーチンを呼び出す場合、その1回の呼び出しにかかる総時間は、遊技制御処理の割込処理の間隔以内となるように設定することとなる。 Condition (1): The programs to be placed in the separate area are used for the purpose of outputting signals required for testing the gaming machine (gaming machine test processing) and preventing fraud (security-related processing), and do not impair (or impair) the fairness of the game. Condition (2): The control area and data area of the use area and the separate area are placed in areas that are explicitly distinguished from each other. Condition (3): The programs to be placed in the separate area (separate programs) are executed after being statically called from the program in the use area (use program). In addition, the call destination address is clearly stated in the program list at that time. Condition (4): The programs to be placed in the separate area are modularized by function, and when called, the contents of all registers used in the use area are protected. Condition (5): Access to the RAM in each area from the use area or the separate area is only possible for reference, and cannot be updated. Condition (6): It is not possible to call a subroutine in the control area of the use area from the control area of the separate area. Since a subroutine that performs interrupt processing is provided in the use area, it becomes necessary to prohibit interrupts when using the control area of the separate area. In order to properly execute the game control process, the time from when the interrupt is prohibited to when it is released must be within the interval of the interrupt process in the game control process (e.g., 1.49 msec). Therefore, when calling a subroutine that uses a control area in another area, the total time required for that one call is set to be within the interval of the interrupt process in the game control process.

また、メインRAM500cのF000h~F1FFhのメモリ空間には使用領域が割り当てられている。具体的に、F000h~F13Fhのメモリ空間には、上記遊技制御処理のワークエリアが割り当てられ、タイマ、カウンタ、フラグ等の変数管理に用いられる。F1C0h~F1FFhのメモリ空間には、上記遊技制御処理のスタック領域が割り当てられている。また、メインRAM500cのF200h~F3FFhのメモリ空間には別領域が割り当てられている。具体的に、F210h~F22Fhのメモリ空間には、上記セキュリティ関連処理のうち一部または全部の処理のワークエリアが割り当てられ、タイマ、カウンタ、フラグ等の変数管理に用いられる。F230h~F246hのメモリ空間には、上記セキュリティ関連処理のうち一部または全部の処理のスタック領域が割り当てられている。 In addition, the memory space from F000h to F1FFh in the main RAM 500c is allocated as a usage area. Specifically, the memory space from F000h to F13Fh is allocated as a work area for the game control process, and is used to manage variables such as timers, counters, and flags. The memory space from F1C0h to F1FFh is allocated as a stack area for the game control process. In addition, another area is allocated to the memory space from F200h to F3FFh in the main RAM 500c. Specifically, the memory space from F210h to F22Fh is allocated as a work area for some or all of the security-related processes, and is used to manage variables such as timers, counters, and flags. The memory space from F230h to F246h is allocated as a stack area for some or all of the security-related processes.

また、FE00h~FFFFhのメモリ空間には入出力部704が割り当てられている。従来、入出力部704に対応するデバイスにアクセスするため、メモリ空間と独立して512バイトのI/O空間が設けられていた。これに対し、本実施形態では、MREQ、IORQの信号をなくし、メモリ、入出力部704へのアクセスを共通化してRD、WR信号で行うこととした。また、入出力部704に接続されたデバイスにアクセスするための上位8ビットのアドレスを指定するハードウェアとしてのUレジスタを設け、ここに予め8ビットの上位アドレスを指定しておく。これにより、メモリ空間とは独立して設けられていたI/O空間を、メモリ空間に統合して一つのアドレス空間とし、IN命令、OUT命令を実行するとメモリ空間に割り当てられた入出力部704に対し、上位8ビットをUレジスタで指定し下位8ビットはIN命令、OUT命令のオペランドで指定した下位8ビットを用いてアクセス可能とした。 Also, the input/output unit 704 is assigned to the memory space from FE00h to FFFFh. Conventionally, a 512-byte I/O space was provided independent of the memory space to access the device corresponding to the input/output unit 704. In contrast, in this embodiment, the MREQ and IORQ signals are eliminated, and access to the memory and the input/output unit 704 is shared and performed by the RD and WR signals. Also, a U register is provided as hardware to specify the upper 8 bits of the address to access the device connected to the input/output unit 704, and the upper 8 bits of the address are specified in advance here. As a result, the I/O space that was provided independently of the memory space is integrated into the memory space to form a single address space, and when the IN command or the OUT command is executed, the input/output unit 704 assigned to the memory space can be accessed by specifying the upper 8 bits with the U register and the lower 8 bits with the lower 8 bits specified by the operand of the IN command or the OUT command.

本実施形態では、LDQ命令ではQレジスタの値を用いてメモリ空間(主にデータエリア、ワークエリア)にアクセスし、IN命令、OUT命令ではUレジスタを用いてデバイス(タイマ、乱数発生器、外部入出力回路等)のI/Oにアクセスするようにプログラムを記述できるようになる。かかる構成により、設計時にプログラムを把握し易くなる。また、メモリおよびI/Oを、16ビットのアドレスで特定してアクセスしていたものを下位8ビットのオペランドでアクセスすることが可能になり、プログラム容量を圧縮することができる。さらにQレジスタ、Q’レジスタ、Uレジスタと複数の上位指定レジスタを持つことにより、上位レジスタが1つだけの時よりも上位レジスタの使い回しによる入れ替えの回数が少なくなり、プログラム容量をさらに圧縮することができる。 In this embodiment, a program can be written so that the LDQ instruction uses the value of the Q register to access memory space (mainly data areas and work areas), and the IN and OUT instructions use the U register to access I/O of devices (timers, random number generators, external input/output circuits, etc.). This configuration makes it easier to understand the program at the time of design. Also, memory and I/O that were previously accessed by specifying 16-bit addresses can now be accessed by lower 8-bit operands, making it possible to compress program capacity. Furthermore, by having multiple upper specification registers, the Q register, Q' register, and U register, the number of times that upper registers need to be replaced due to reuse is reduced compared to when there is only one upper register, making it possible to further compress program capacity.

上記の例ではIN命令、OUT命令でI/O空間に対応するメモリ空間にアクセスしたが、IN命令、OUT命令で直接メモリ空間にアクセスしてもよい。このことは、例えばメモリ上の3つの256バイト領域にアクセスする場合に、Qレジスタ、Q’レジスタ、Uレジスタにそれぞれの上位8ビットを指定しておき、LDQ命令とIN命令、OUT命令でそれぞれの領域にアクセスすることで実現できる。 In the above example, the memory space corresponding to the I/O space was accessed with the IN and OUT instructions, but the memory space may also be accessed directly with the IN and OUT instructions. For example, when accessing three 256-byte areas in memory, this can be achieved by specifying the upper 8 bits of each in the Q register, Q' register, and U register, and then accessing each area with the LDQ instruction, IN instruction, and OUT instruction.

(遊技情報の表示)
ところで、遊技機、例えば、スロットマシン400では、上述したようなボーナス遊技状態やAT演出状態への移行頻度が偏ると射倖性が過度に高まってしまう懸念がある。そこで、メダルの獲得性能が高い遊技状態が偏っているか否かを統括的かつ画一的に判定すべく、有利区間比率、指示込役物比率、連続役物比率、役物比率、役物等状態比率といった判断基準を設ける。有利区間比率は、初回起動時から、有利区間に滞在している遊技数である滞在遊技数を、遊技数の総数である総遊技数で除算し、%で示した値を言い、指示込役物比率は、初回起動時から、所定の基準集計期間における、ボーナス遊技等、役物の作動および指示機能作動に基づいて払出制御手段610が払い出したメダルの枚数である指示込役物払出数を、払出制御手段610が払い出したメダルの総数である総払出数で除算し、%で示した値を言い、連続役物比率は、初回起動時から、所定の基準集計期間における、レギュラーボーナス遊技等、第1種特別役物の作動によって払出制御手段610が払い出したメダルの枚数である連続役物払出数を、払出制御手段610が払い出したメダルの総数である総払出数で除算し、%で示した値を言い、役物比率は、初回起動時から、所定の基準集計期間における、ボーナス遊技等、役物の作動に基づいて払出制御手段610が払い出したメダルの枚数である役物払出数を、払出制御手段610が払い出したメダルの総数である総払出数で除算し、%で示した値を言い、役物等状態比率は、初回起動時から、所定の基準集計期間における、ボーナス遊技等、役物が作動した遊技数である作動遊技数を、遊技数の総数である総遊技数で除算し、%で示した値を言う。なお、有利区間比率、指示込役物比率、連続役物比率、役物比率、役物等状態比率は、設定変更によってはクリアされない。
(Display of Game Information)
Incidentally, in a gaming machine, for example, a slot machine 400, there is a concern that the risk of riskiness will be excessively increased if the frequency of transitions to the bonus game state or the AT performance state as described above is biased. Therefore, in order to comprehensively and uniformly determine whether or not the game state with high medal acquisition performance is biased, judgment criteria such as an advantageous zone ratio, a role with instruction ratio, a continuous role ratio, a role ratio, and a role etc. state ratio are set. The advantageous zone ratio is a value expressed as a percentage obtained by dividing the number of staying games, which is the number of games staying in the advantageous zone from the time of the first startup, by the total number of games, which is the total number of games. The instruction-included role ratio is a value expressed as a percentage obtained by dividing the instruction-included role payout number, which is the number of medals paid out by the payout control means 610 based on the operation of the role and the instruction function operation, such as a bonus game, during a specified standard counting period from the time of the first startup, by the total payout number, which is the total number of medals paid out by the payout control means 610. The continuous role ratio is a value expressed as a percentage obtained by dividing the number of medals paid out by the payout control means 610 based on the operation of the first type special role, such as a regular bonus game, during a specified standard counting period from the time of the first startup. The consecutive payout number, which is the number of medals paid out by the payout control means 610, is divided by the total payout number, which is the total number of medals paid out by the payout control means 610, and the ratio of the medals is calculated as a percentage by dividing the number of medals paid out by the payout control means 610 based on the operation of the medals, such as bonus games, during a specified reference counting period from the first start-up, by the total payout number, which is the total number of medals paid out by the payout control means 610, and the ratio of the state of the medals, etc. is calculated as a percentage by dividing the number of games in operation, which is the number of games in which the medals, such as bonus games, are operated, during a specified reference counting period from the first start-up, by the total number of games, which is the total number of games. Note that the advantageous zone ratio, the ratio of the medals with instructions, the ratio of the consecutive medals with instructions, the ratio of the medals with instructions, and the ratio of the state of the medals, etc. are not cleared by changing the settings.

このような、有利区間比率、指示込役物比率、連続役物比率、役物比率、役物等状態比率の表示は、図98に示したタイマ割込み処理S3100のダイナミックポート出力処理(SYNMOUTモジュール)S3100-7における使用領域該役比表示取得処理(E_SDPSTモジュール)において実行される。 Such displays of advantageous zone ratios, instructed role ratios, continuous role ratios, role ratios, and role etc. status ratios are executed in the dynamic port output process (SYNMOUT module) S3100-7 of the timer interrupt process S3100 shown in FIG. 98, in which the role ratio display acquisition process for the used area (E_SDPST module) is executed.

ここで、有利区間は、非AT演出状態のうちの一部の演出状態(ここでは非有利演出状態)を除く全ての演出状態に滞在している区間を言う。なお、有利区間に対し、非有利演出状態を非有利区間という場合もある。ただし、有利区間として、AT演出状態や非AT演出状態に限らず、遊技者に対し有利に遊技が進行する遊技状態および演出状態のいずれかを任意に設定してもよい。 Here, the advantageous section refers to a section in which the player remains in all presentation states except for some of the non-AT presentation states (here, non-advantageous presentation states). Note that in contrast to advantageous sections, non-advantageous presentation states may also be called non-advantageous sections. However, advantageous sections are not limited to AT presentation states or non-AT presentation states, and any game state or presentation state in which the game progresses advantageously for the player may be set as desired.

また、役物は、入賞を容易にするための装置であり、レギュラーボーナス(RB)、チャレンジボーナス(CB)、シングルボーナス(SB)等が該当する。また、かかる役物のうち、レギュラーボーナス(RB)が第1種特別役物に対応する。なお、レギュラービッグボーナス(RBB)は、第1種特別役物であるレギュラーボーナス(RB)の入賞形態を示す図柄組合せの表示によらずにレギュラーボーナス(RB)が連続で作動するものであり、チャレンジビッグボーナス(CBB)は、第2種特別役物(役物のうちの一つ)であるチャレンジボーナス(CB)の入賞形態を示す図柄組合せの表示によらずにチャレンジボーナス(CB)が連続で作動するものである。したがって、連続役物比率は、所定の基準集計期間において払い出された総払出数に対する第1種特別役物の作動によって払い出された連続役物払出数の比率を表すこととなり、役物比率は、所定の基準集計期間において払い出された総払出数に対する役物の作動によって払い出された役物払出数の比率を表すこととなる。 The role is a device for making it easier to win, and includes the regular bonus (RB), challenge bonus (CB), single bonus (SB), etc. Among these roles, the regular bonus (RB) corresponds to the first type special role. The regular big bonus (RBB) is a role in which the regular bonus (RB) is activated continuously regardless of the display of the symbol combination that indicates the winning form of the regular bonus (RB), which is the first type special role, and the challenge big bonus (CBB) is a role in which the challenge bonus (CB), which is the second type special role (one of the roles), is activated continuously regardless of the display of the symbol combination that indicates the winning form of the challenge bonus (CB). Therefore, the consecutive role ratio represents the ratio of the number of consecutive role payouts paid out by the operation of the first type special role to the total number of payouts paid out in a specified reference collection period, and the role ratio represents the ratio of the number of role payouts paid out by the operation of the role to the total number of payouts paid out in a specified reference collection period.

なお、基準集計期間は、払出制御手段610が払い出したメダルの枚数を累積する対象期間である。本実施形態では、例えば、有限の値である6000遊技や、当該スロットマシン400を遊技場(ホール)に設置してから全ての期間(以下、「総累計」という)の2通りを挙げる。したがって、連続役物比率としては、6000遊技の連続役物比率と、総累計の連続役物比率とを導出し、役物比率としては、6000遊技の役物比率と、総累計の役物比率とを導出する。ただし、基準集計期間として、任意の遊技数を設定できるのは言うまでもない。 The standard counting period is the period for which the payout control means 610 accumulates the number of medals paid out. In this embodiment, for example, there are two possible values: 6000 games, which is a finite value, and the entire period since the slot machine 400 was installed in the game center (hall) (hereinafter referred to as the "total cumulative total"). Therefore, the consecutive feature ratio is derived as the consecutive feature ratio for 6000 games and the consecutive feature ratio for the total cumulative total, and the feature ratio is derived as the feature ratio for 6000 games and the feature ratio for the total cumulative total. However, it goes without saying that any number of games can be set as the standard counting period.

このような、有利区間比率、指示込役物比率、連続役物比率、役物比率、役物等状態比率を求めるべく、累積手段(図示せず)は、総遊技数、滞在遊技数、作動遊技数、総払出数、指示込役物払出数、連続役物払出数、役物払出数を累積する。このとき、総遊技数、滞在遊技数、作動遊技数、総払出数、指示込役物払出数、連続役物払出数、役物払出数それぞれには、カウンタが対応付けられている。具体的に、累積手段は、1遊技が開始されると、総遊技数を示す総遊技数カウンタを1だけインクリメントする。そして、現在の遊技が有利区間における遊技であるか否か判定し、有利区間における遊技であれば、滞在遊技数を示す滞在遊技数カウンタを1だけインクリメントする。なお、滞在遊技数カウンタの更新は、非有利区間である場合において有利区間に当選した遊技(有利区間への移行処理が行われた遊技)の次遊技から開始される。ただし、レギュラービッグボーナス(RBB)またはチャレンジビッグボーナス(CBB)の当選に基づいて有利区間に当選した場合には当該ボーナスが入賞した遊技(有利区間への移行処理が行われた遊技)の次遊技から開始される。また、現在の遊技が、役物が作動した遊技であるか否か判定し、役物が作動した遊技であれば、作動遊技数を示す作動遊技数カウンタを1だけインクリメントする。 In order to obtain such advantageous zone ratio, instruction-based feature ratio, continuous feature ratio, feature ratio, and feature etc. state ratio, the accumulation means (not shown) accumulates the total number of games, the number of stay games, the number of games in operation, the total number of payouts, the number of instruction-based feature payouts, the number of continuous feature payouts, and the number of feature payouts. At this time, a counter is associated with each of the total number of games, the number of stay games, the number of games in operation, the total number of payouts, the number of instruction-based feature payouts, the number of continuous feature payouts, and the number of feature payouts. Specifically, when one game is started, the accumulation means increments the total number of games counter indicating the total number of games by 1. Then, it determines whether the current game is a game in an advantageous zone, and if it is a game in an advantageous zone, it increments the number of stay games counter indicating the number of stay games by 1. Note that the update of the stay number of games counter is started from the next game after the game that won the advantageous zone (the game in which the transition process to the advantageous zone was performed) when it is a non-advantageous zone. However, if a player enters the advantageous zone based on winning the Regular Big Bonus (RBB) or Challenge Big Bonus (CBB), the game will start from the game following the game in which the bonus was won (the game in which the transition process to the advantageous zone was performed). In addition, it is determined whether the current game is a game in which a special feature has been activated, and if so, the activated game number counter, which indicates the number of activated games, is incremented by 1.

また、累積手段は、その遊技でメダルが払い出されると、総払出数を示す総払出数カウンタを、その払出枚数分だけインクリメントする。そして、当該メダルの払い出しが役物の作動および指示機能作動に基づいていれば、指示込役物払出数を示す指示込役物払出数カウンタを、その払出枚数分だけインクリメントし、当該メダルの払い出しが役物に基づいていれば、役物払出数を示す役物払出数カウンタを、その払出枚数分だけインクリメントし、さらに、当該メダルの払い出しが第1種特別役物に基づいていれば、連続役物払出数を示す連続役物払出数カウンタを、その払出枚数分だけインクリメントする。 When medals are paid out in a game, the accumulation means increments the total payout counter, which indicates the total number of medals paid out, by the number of medals paid out. If the payout of the medals is based on the operation of the reel and the instruction function, the accumulation means increments the instruction-based reel payout counter, which indicates the instruction-based reel payout number, by the number of medals paid out. If the payout of the medals is based on the reel, the accumulation means increments the reel payout counter, which indicates the number of reel payouts, by the number of medals paid out. If the payout of the medals is based on the first type special reel, the accumulation means increments the continuous reel payout counter, which indicates the number of continuous reel payouts, by the number of medals paid out.

なお、総累計については、かかるカウンタのみで計数できるが、連続役物比率および役物比率に関しては、総累計のみならず、基準集計期間、ここでは、6000遊技といった限られた期間も対象にしなければならない。そこで、6000遊技を、例えば、400遊技毎に均等に区分けし、400遊技ずつ計数する複数(例えば15個)のカウンタを設け、リングバッファとして利用する。なお、ここでは、6000遊技を400遊技毎に区分けして計数する例を挙げているが、6000の因数(約数)であれば、区分けする遊技数を任意に設定可能なのは言うまでもない。 The total cumulative total can be counted using only this counter, but the consecutive feature ratio and feature ratio must be calculated not only based on the total cumulative total but also on the reference counting period, which is a limited period of 6000 games in this case. Therefore, the 6000 games are divided equally into groups of 400 games, for example, and multiple counters (for example, 15) that count 400 games each are provided and used as a ring buffer. Note that, although an example is given here in which 6000 games are divided into groups of 400 games and counted, it goes without saying that any number of games to be divided can be set as long as it is a factor (divisor) of 6000.

具体的に、累積手段は、その遊技でメダルが払い出されると、総払出数カウンタ、連続役物払出数カウンタ、役物払出数カウンタを更新する処理を400遊技まで行い、400遊技に到達すると、過去に計数した14個のカウンタと合算して、総払出数、連続役物払出数、役物払出数を導出する。そして、14個のカウンタのうち最も古い遊技で計数したカウンタを初期化し、その初期化したカウンタによって、新たに400遊技分、総払出数カウンタ、連続役物払出数カウンタ、役物払出数カウンタを更新する。こうして、400遊技毎に、新たな400遊技分の遊技情報と、過去の5600遊技分の遊技情報とを参照することができるので、直近の6000遊技の総払出数、連続役物払出数、役物払出数を導出することが可能となる。なお、かかるカウンタによる計数は、規定数や設定値に拘わらず常に実行される。このようにして、総遊技数、滞在遊技数、作動遊技数、総払出数、指示込役物払出数、連続役物払出数、役物払出数がそれぞれ累積される。 Specifically, when medals are paid out in a game, the accumulation means performs a process of updating the total payout counter, the consecutive feature payout counter, and the feature payout counter up to 400 games, and when 400 games are reached, the total payout number, the consecutive feature payout number, and the feature payout number are added together with the 14 counters counted in the past to derive the total payout number, the consecutive feature payout number, and the feature payout number. Then, the counter counted in the oldest game among the 14 counters is initialized, and the total payout number counter, the consecutive feature payout number counter, and the feature payout number counter for 400 games are updated by the initialized counter. In this way, since it is possible to refer to the game information for the new 400 games and the game information for the past 5600 games every 400 games, it is possible to derive the total payout number, the consecutive feature payout number, and the feature payout number for the most recent 6000 games. Note that the counting by such counters is always performed regardless of the prescribed number or set value. In this way, the total number of games, number of remaining games, number of active games, total number of payouts, number of instructed feature payouts, number of consecutive feature payouts, and number of feature payouts are all accumulated.

続いて、比率導出手段(図示せず)は、累積手段が累積した、総遊技数、滞在遊技数、作動遊技数、総払出数、指示込役物払出数、連続役物払出数、役物払出数に基づいて有利区間比率、指示込役物比率、連続役物比率、役物比率、役物等状態比率を導出する。具体的に、比率導出手段は、滞在遊技数を総遊技数で除算し、%換算して有利区間比率を導出し、総累計の指示込役物払出数を総累計の総払出数で除算し、%換算して総累計の指示込役物比率を導出し、総累計の連続役物払出数を総累計の総払出数で除算し、%換算して総累計の連続役物比率を導出し、総累計の役物払出数を総累計の総払出数で除算し、%換算して総累計の役物比率を導出し、作動遊技数を総遊技数で除算し、%換算して役物等状態比率を導出する。また、比率導出手段は、400遊技毎に、6000遊技の連続役物払出数を6000遊技の総払出数で除算し、%換算して6000遊技の連続役物比率を導出し、6000遊技の役物払出数を6000遊技の総払出数で除算し、%換算して6000遊技の役物比率を導出する。 Next, the ratio derivation means (not shown) derives the advantageous zone ratio, the instructed feature ratio, the consecutive feature ratio, the feature ratio, and the feature etc. state ratio based on the total number of plays, the number of stay plays, the number of activated plays, the total number of payouts, the number of instructed feature payouts, the number of consecutive feature payouts, and the number of feature payouts accumulated by the accumulation means. Specifically, the ratio derivation means divides the number of stay games by the total number of games and converts it to a percentage to derive the advantageous zone ratio, divides the total cumulative number of instruction-included feature payouts by the total cumulative total payouts and converts it to a percentage to derive the total cumulative instruction-included feature ratio, divides the total cumulative number of consecutive feature payouts by the total cumulative total payouts and converts it to a percentage to derive the total cumulative consecutive feature ratio, divides the total cumulative feature payouts by the total cumulative total payouts and converts it to a percentage to derive the total cumulative feature ratio, divides the number of activated games by the total number of games and converts it to a percentage to derive the feature etc. state ratio. In addition, the ratio derivation means divides the number of consecutive payouts for 6000 games by the total number of payouts for 6000 games for every 400 games, converts this to a percentage, and derives the consecutive payout ratio for 6000 games, and divides the number of payouts for 6000 games by the total number of payouts for 6000 games, and converts this to a percentage, and derives the payout ratio for 6000 games.

次に、比率表示手段(図示せず)は、所定の表示指令に基づいて、比率導出手段が導出した有利区間比率、指示込役物比率、6000遊技の連続役物比率、6000遊技の役物比率、総累計の連続役物比率、総累計の役物比率、役物等状態比率を比率表示部860に表示する。 Next, the ratio display means (not shown) displays the advantageous zone ratio, the instructed feature ratio, the consecutive feature ratio for 6000 plays, the feature ratio for 6000 plays, the total cumulative consecutive feature ratio, the total cumulative feature ratio, and the feature etc. state ratio derived by the ratio derivation means on the ratio display unit 860 based on a predetermined display command.

図103は、主制御基板500の外観を示した説明図である。図103(a)に示すように、主制御基板500の端側には複数のコネクタ870が設けられ、また、主制御基板500の中央近傍には比率表示部860が設けられている。比率表示部860は、十進のアラビア数字を表すことができる7つのセグメントと、その右下に位置するドットセグメント(DP)とからなる7セグメントを4つ並置して構成される。そして、主制御基板500をスロットマシン400に組み込む際には、図103(b)のように、主制御基板500を基板ケース872に収容し、基板ケース872の前面部位872aに主制御基板500の背面からビス874で固定する。基板ケース872の前面部位872aにおける、比率表示部860に対応する位置には、比率表示部860を視認可能な透過窓872bが設けられている。したがって、管理者は、図74に示したように、前面上扉404を開放した状態で、当該透過窓872bを通じ、比率表示部860の表示内容を視認することができる。なお、かかる透過窓872bの代わりに、基板ケース872全体を透過または半透過な材質で形成してもよい。 Figure 103 is an explanatory diagram showing the appearance of the main control board 500. As shown in Figure 103 (a), a plurality of connectors 870 are provided on the end side of the main control board 500, and a ratio display unit 860 is provided near the center of the main control board 500. The ratio display unit 860 is composed of four 7-segment juxtapositions, each of which is made up of seven segments that can represent decimal Arabic numerals and a dot segment (DP) located to the lower right of the seven segments. When the main control board 500 is incorporated into the slot machine 400, as shown in Figure 103 (b), the main control board 500 is housed in a board case 872 and fixed to the front part 872a of the board case 872 from the back of the main control board 500 with a screw 874. At the position of the front part 872a of the board case 872 corresponding to the ratio display unit 860, a transparent window 872b through which the ratio display unit 860 can be seen is provided. Therefore, as shown in FIG. 74, the administrator can view the display content of the ratio display unit 860 through the transparent window 872b with the front upper door 404 open. Note that instead of the transparent window 872b, the entire board case 872 may be made of a transparent or semi-transparent material.

ここでは、比率表示部860を構成する4つの7セグメントのみで、有利区間比率、6000遊技の連続役物比率、6000遊技の役物比率、総累計の連続役物比率、総累計の役物比率といった5つの遊技情報を表示するため、各比率に識別子を対応付け、比率表示部860には、その識別子と各比率とを順次表示することとする。なお、各比率は、0~99の範囲で示される。したがって、4つの7セグメントのうち、左側に位置する2つの7セグメントで識別子を示し、右側に位置する2つの7セグメントで比率を示す。 Here, in order to display five pieces of game information such as advantageous zone ratio, consecutive feature ratio for 6000 plays, feature ratio for 6000 plays, total cumulative consecutive feature ratio, and total cumulative feature ratio using only the four seven-segment display unit 860, an identifier is associated with each ratio, and the identifier and each ratio are displayed sequentially on the ratio display unit 860. Each ratio is displayed in the range of 0 to 99. Therefore, of the four seven-segment display unit 860, the two seven-segment display on the left side indicate the identifier, and the two seven-segment display on the right side indicate the ratio.

図104は、比率表示部860の表示態様を説明するための説明図である。電源スイッチ444をONすると、図104(a)のように、比率表示手段は、有利区間比率に対応する識別子である「7U」と、その比率である、例えば「70」%とを一度に表示する(所謂7Uタイプ)。また、スロットマシン400によっては、有利区間比率の代わりに指示込役物比率を表示することもできる。この場合、比率表示手段は、指示込役物比率に対応する識別子である「7P」と、その比率である、例えば「70」%とを一度に表示する(所謂7Pタイプ)。ここで、7Uタイプでは、設定差のある当選種別を参照して有利区間に移行させる抽選を行うことは可能であるが、設定値を直接参照して有利区間に移行させる抽選を行うことはできない。一方、7Pタイプでは、設定差のある当選種別、および、設定値のいずれも参照して有利区間に移行させる抽選を行うことが可能である。なお、比率表示手段は、比率表示部860の2つめの7セグメントのドットセグメントを点灯することで識別子と比率とを区切っている。 104 is an explanatory diagram for explaining the display mode of the ratio display unit 860. When the power switch 444 is turned on, as shown in FIG. 104(a), the ratio display means displays the identifier "7U" corresponding to the advantageous zone ratio and its ratio, for example, "70"% at once (so-called 7U type). Depending on the slot machine 400, the instruction-included feature ratio can also be displayed instead of the advantageous zone ratio. In this case, the ratio display means displays the identifier "7P" corresponding to the instruction-included feature ratio and its ratio, for example, "70"% at once (so-called 7P type). Here, in the 7U type, it is possible to perform a lottery to move to an advantageous zone by referring to a winning type with a setting difference, but it is not possible to perform a lottery to move to an advantageous zone by directly referring to a setting value. On the other hand, in the 7P type, it is possible to perform a lottery to move to an advantageous zone by referring to both a winning type with a setting difference and a setting value. The ratio display means separates the identifier and the ratio by lighting up the second 7-segment dot segment of the ratio display unit 860.

この状態で、所定時間(例えば5.0sec)が経過すると、図104(b)ように、比率表示手段は、6000遊技の連続役物比率に対応する識別子である「6Y」と、その比率である「60」%とを一度に表示する。そして、所定時間が経過する度に、図104(c)のような、6000遊技の役物比率に対応する識別子である「7Y」と、その比率である「70」%との組み合わせ、図104(d)のような、総累計の連続役物比率に対応する識別子である「6A」と、その比率である「60」%との組み合わせ、図104(e)のような、総累計の役物比率に対応する識別子である「7A」と、その比率である「70」%との組み合わせ、図104(f)のような、役物等状態比率に対応する識別子である「5H」と、その比率である「50」%との組み合わせが順次表示される。また、図104(f)のように、役物等状態比率に対応する識別子である「5H」と、その比率である「50」%との組み合わせが表示されている状態で、さらに所定時間が経過すると、図104(a)に示した、有利区間比率に対応する識別子である「7U」と、その比率である「70」%とが再度表示され、以後、所定時間が経過する度に、有利区間比率(指示込役物比率)、6000遊技の連続役物比率、6000遊技の役物比率、総累計の連続役物比率、総累計の役物比率、役物等状態比率の順で表示が切り換わる。 In this state, when a predetermined time (for example, 5.0 sec) has elapsed, the ratio display means displays the identifier "6Y" corresponding to the consecutive feature ratio of 6000 games and its ratio "60"% at once, as shown in Fig. 104(b). Then, each time a predetermined time has elapsed, the following combinations are displayed in sequence: the combination of the identifier "7Y" corresponding to the feature ratio of 6000 games and its ratio "70"% as shown in Fig. 104(c), the combination of the identifier "6A" corresponding to the consecutive feature ratio of the total cumulative feature ratio and its ratio "60"% as shown in Fig. 104(d), the combination of the identifier "7A" corresponding to the feature ratio of the total cumulative feature ratio and its ratio "70"% as shown in Fig. 104(e), and the combination of the identifier "5H" corresponding to the feature etc. state ratio and its ratio "50"% as shown in Fig. 104(f). Also, as shown in FIG. 104(f), when the combination of the identifier "5H" corresponding to the reel state ratio and its ratio "50"% is displayed, if a predetermined time further elapses, the identifier "7U" corresponding to the advantageous zone ratio and its ratio "70"% shown in FIG. 104(a) will be displayed again, and thereafter, each time the predetermined time elapses, the display will switch in the following order: advantageous zone ratio (reel ratio with instruction), consecutive reel ratio for 6000 plays, reel ratio for 6000 plays, total cumulative consecutive reel ratio, total cumulative reel ratio, reel state ratio.

なお、ここでは、4つの7セグメントで識別子と比率を同時に示す例を挙げて説明したが、2つの7セグメントのみを用い、識別子と比率とを切り換えて表示することもできる。この場合、比率表示手段は、比率表示部860において、所定時間が経過する度に、例えば、「7U」→「70」→「6Y」→「60」→「7Y」→「70」→「6A」→「60」→「7A」→「70」→「5H」→「50」といった順に表示を切り替える。 Note that, although an example in which an identifier and a ratio are simultaneously displayed using four seven-segment displays has been given here, it is also possible to use only two seven-segment displays and switch between displaying the identifier and the ratio. In this case, the ratio display means switches the display in the ratio display unit 860 every time a predetermined time has elapsed, for example, in the following order: "7U" → "70" → "6Y" → "60" → "7Y" → "70" → "6A" → "60" → "7A" → "70" → "5H" → "50".

なお、比率表示手段は、主制御基板500の比率表示部860に代えて、4つの7セグメントに対応する既存の表示部(メインクレジット表示部430およびメイン払出表示部432)に識別子と比率とを切り換えて表示することもできる。この場合、1遊技の結果が報知された後、次の遊技の開始までに、前面上扉404を開放し、その状態で、既存のスイッチ、例えば、設定値を設定または変更する操作を実行するスイッチを操作することで、有利区間比率に対応する識別子と、その比率が表示され、以後、所定時間が経過する度に、有利区間比率(指示込役物比率)→6000遊技の連続役物比率→6000遊技の役物比率→総累計の連続役物比率→総累計の役物比率→指示込役物比率の順で表示が繰り返し切り換わることとなる。なお、比率表示手段が既存の表示部に、有利区間比率(指示込役物比率)、6000遊技の連続役物比率、6000遊技の役物比率、総累計の連続役物比率、総累計の役物比率、役物等状態比率を表示している間であっても、メダルの投入等、スロットマシン400の状態に変化があった場合には、その表示を削除する。 The ratio display means may also display the identifier and ratio by switching them on the existing display units (main credit display unit 430 and main payout display unit 432) corresponding to the four 7-segment displays instead of the ratio display unit 860 of the main control board 500. In this case, after the result of one game is notified, the front upper door 404 is opened before the start of the next game, and in that state, an existing switch, for example, a switch that executes an operation to set or change a set value, is operated to display the identifier corresponding to the advantageous zone ratio and its ratio, and thereafter, each time a predetermined time has passed, the display is repeatedly switched in the following order: advantageous zone ratio (instruction-included role ratio) → 6000-game continuous role ratio → 6000-game role ratio → total cumulative continuous role ratio → total cumulative role ratio → instruction-included role ratio. In addition, even if the ratio display means is displaying the advantageous zone ratio (indicated feature ratio), consecutive feature ratio for 6000 plays, feature ratio for 6000 plays, total cumulative consecutive feature ratio, total cumulative feature ratio, and feature etc. status ratio on the existing display section, if there is a change in the status of the slot machine 400, such as the insertion of a medal, the display will be deleted.

管理者は、このような比率表示部860または既存の表示部を通じて、有利区間比率、指示込役物比率、6000遊技の連続役物比率、6000遊技の役物比率、総累計の連続役物比率、総累計の役物比率、役物等状態比率といった遊技情報を視認することができる。そして、遊技情報が適切な範囲に収まっているか否かを判定し、スロットマシン400が適正に動作しているかを判断することが可能となる。 Through this ratio display unit 860 or an existing display unit, the administrator can visually check game information such as the advantageous zone ratio, the instructed feature ratio, the consecutive feature ratio for 6000 plays, the feature ratio for 6000 plays, the total cumulative consecutive feature ratio, the total cumulative feature ratio, and the feature etc. state ratio. It is then possible to determine whether the game information is within an appropriate range and judge whether the slot machine 400 is operating properly.

かかる適切な範囲は、例えば、有利区間比率<70%、指示込役物比率<70%、6000遊技の連続役物比率<60%、6000遊技の役物比率<70%、総累計の連続役物比率<60%、総累計の役物比率<70%、役物等状態比率<50%と設定している。かかる適切な範囲を逸脱している場合、比率表示手段は、その対象となる比率に関し、比率表示部860の各セグメントを例えば0.6sec周期で点滅させるとしてもよい。かかる点滅表示により、管理者は、適切な範囲を逸脱している識別子およびその比率を迅速に把握することが可能となる。 Such appropriate ranges are set, for example, as follows: favorable zone ratio < 70%, instructed feature ratio < 70%, consecutive feature ratio for 6000 plays < 60%, feature ratio for 6000 plays < 70%, total cumulative consecutive feature ratio < 60%, total cumulative feature ratio < 70%, feature etc. state ratio < 50%. If the appropriate range is exceeded, the ratio display means may blink each segment of the ratio display unit 860 for the applicable ratio at a cycle of, for example, 0.6 sec. Such a blinking display allows the administrator to quickly grasp the identifier that is out of the appropriate range and the ratio.

ところで、上述したように、比率導出手段は、滞在遊技数を総遊技数で除算して有利区間比率を導出し、総累計の指示込役物払出数を総累計の総払出数で除算して総累計の指示込役物払出数を導出し、総累計の連続役物払出数を総累計の総払出数で除算して総累計の連続役物払出数を導出し、総累計の役物払出数を総累計の総払出数で除算して総累計の役物払出数を導出し、作動遊技数を総遊技数で除算して役物等状態比率を導出している。しかし、主制御基板500におけるメインCPU500aは処理能力が低く、かかるメインCPU500aで利用可能な乗算命令や除算命令は、被乗数、乗数、被除数、および、除数となる数値の範囲が制限されている。例えば、メインCPU500aでの演算命令として予め準備されている、除算を実行するDIV命令には、被除数および除数のいずれも数値範囲が2バイトに制限される場合があり、つまり、0~65535までの範囲までしか取り扱うことができない場合がある。そうすると、総遊技数が、例えば175000遊技以上となる場合、数値範囲を超えてしまい、単純に2バイトのDIV命令を利用することができない。この場合、人が筆算で除算を行うのと同様、加算および減算を繰り返すプログラムを別途準備しなければならず、処理負荷の増大を招くこととなる。そこで、本実施形態では、処理負荷の増大を抑えつつ、遊技情報を適切に得ることを目的とする。 As described above, the ratio deriving means divides the number of stay games by the total number of games to derive the advantageous zone ratio, divides the total cumulative number of instruction-based payouts by the total cumulative total payouts to derive the total cumulative number of instruction-based payouts, divides the total cumulative number of consecutive payouts by the total cumulative total payouts to derive the total cumulative number of consecutive payouts, divides the total cumulative payouts by the total cumulative total payouts to derive the total cumulative number of payouts, and divides the number of active games by the total number of games to derive the ratio of the status of the game. However, the main CPU 500a in the main control board 500 has low processing power, and the multiplication and division commands available to the main CPU 500a are limited in the range of values that become the multiplicand, multiplier, dividend, and divisor. For example, in the DIV command for performing division, which is prepared in advance as an arithmetic command for the main CPU 500a, the numeric range for both the dividend and the divisor may be limited to 2 bytes, meaning that only the range of 0 to 65535 can be handled. In that case, if the total number of games is, for example, 175,000 games or more, the numeric range will be exceeded and it is simply not possible to use a 2-byte DIV command. In this case, a separate program must be prepared that repeats addition and subtraction, just as a person would do division by long division, resulting in an increase in the processing load. Therefore, in this embodiment, the objective is to appropriately obtain game information while suppressing the increase in processing load.

なお、上記では、スロットマシン400において、例えば、有利区間比率、指示込役物比率、6000遊技の連続役物比率、6000遊技の役物比率、総累計の連続役物比率、総累計の役物比率、役物等状態比率といった遊技情報を比率表示部860に表示する例を挙げて説明した。パチンコ機においては、例えば、所定の基準集計期間における、賞球数(低確時かつ時短無し時の払出個数である低確払出個数)を、アウト数(低確時かつ時短無し時のアウト個数である低確アウト個数)で除算し、%で示したベース値を性能表示モニタ(比率表示部860)に表示するとしてもよい。なお、パチンコ機におけるベース値では、スロットマシン400のように、小数点以下を切り捨てしないで、四捨五入する。 In the above, an example was given of the slot machine 400, where game information such as the advantageous zone ratio, the instructed feature ratio, the consecutive feature ratio for 6000 plays, the feature ratio for 6000 plays, the total cumulative consecutive feature ratio, the total cumulative feature ratio, and the feature state ratio are displayed on the ratio display unit 860. In a pachinko machine, for example, the number of winning balls (the number of low-probability payouts, which is the number of payouts when there is low probability and no time reduction) during a specified reference counting period may be divided by the number of outs (the number of low-probability outs, which is the number of outs when there is low probability and no time reduction), and the base value expressed as a percentage may be displayed on the performance display monitor (ratio display unit 860). Note that the base value in a pachinko machine is rounded off, not truncated to the nearest whole number, as in the slot machine 400.

(各比率の導出処理)
ここでは、各比率(有利区間比率、指示込役物比率、連続役物比率、役物比率、役物等状態比率)を導出する処理例を複数挙げて説明するが、まず、その複数の処理に共通する部分を詳述する。本実施形態では、有利区間比率、指示込役物比率、連続役物比率、役物比率、役物等状態比率として、最終的に%に換算された値を求めることとなる。これは、除算した結果に対し、小数点以下2桁のみが必要であることを示す。また、スロットマシン400では、%に換算した場合の小数点以下の値は切り捨てとしている。これは、除算した結果に対し、小数点以下2桁のみを導出できれば、小数点以下3桁以降の演算を要さないことを意味する。したがって、本実施形態では、除算の結果を2桁繰上すべく、所定の乗数(ここでは100)を乗じる。なお、ここでは、小数点2桁のみが必要なので乗数として「100」を乗じる例を挙げたが、小数点3桁が必要な場合は乗数として「1000」を乗じる等、必要な桁数に応じて乗数を変更することができる。
(Derivation of each ratio)
Here, several examples of processing for deriving each ratio (advantageous zone ratio, instruction-included role ratio, continuous role ratio, role ratio, role etc. state ratio) will be described, but first, the common part of the several processing will be described in detail. In this embodiment, the advantageous zone ratio, instruction-included role ratio, continuous role ratio, role ratio, role etc. state ratio are finally converted into %. This means that only two decimal places are required for the division result. Also, in the slot machine 400, the value after the decimal point when converted into % is rounded down. This means that if only two decimal places can be derived for the division result, no calculation is required after the third decimal place. Therefore, in this embodiment, the division result is multiplied by a predetermined multiplier (here, 100) to carry over two digits. In this example, since only two decimal places are required, the multiplier "100" is used, but if three decimal places are required, the multiplier "1000" can be used, and the multiplier can be changed according to the number of digits required.

また、ここでは、導出処理の対象として「役物比率」を挙げて説明するが、有利区間比率、指示込役物比率、連続役物比率、役物等状態比率にも同様の処理が適用できるのは言うまでもない。役物比率は、上述したように、役物払出数を総払出数で除算し、%換算して導出される。かかる「%換算する」点が乗数「100」を乗じることに相当する。したがって、役物比率=役物払出数÷総払出数×100といった式で表すことができる。しかし、役物払出数≦総払出数となるので、役物払出数=総払出数ではない限り、この式の順では役物払出数÷総払出数の時点で必ず小数点以下の値となってしまい、例えば、メインCPU500aでは演算不能となる。 Here, the "game ratio" is described as the subject of the derivation process, but it goes without saying that the same process can be applied to the advantageous zone ratio, the instructed game ratio, the continuous game ratio, and the game state ratio. As described above, the game ratio is derived by dividing the number of game payouts by the total number of payouts and converting it to a percentage. This "percentage conversion" point corresponds to multiplying by the multiplier "100". Therefore, it can be expressed as a formula such as: Game ratio = number of game payouts / total number of payouts x 100. However, since the number of game payouts is ≦ total number of payouts, unless the number of game payouts = total number of payouts, this formula will always result in a value below the decimal point at the point where the number of game payouts / total number of payouts is reached, and for example, it will be impossible to calculate on the main CPU 500a.

そこで、演算順を変更し、役物比率=役物払出数×100÷総払出数といった順、すなわち、まず、役物払出数に乗数(100)を乗じ、その後、乗数を乗じた結果(被除数)を総払出数で除算する順で演算を行う。こうすることで、小数点以下の演算を行うこと無く、整数のみで演算結果を完結することが可能となり、結果的に、小数点以下の切り捨てが簡易に実現される。 Therefore, the calculation order is changed to: feature ratio = feature payout number x 100 ÷ total payout number. In other words, the calculation is performed in the following order: first, the feature payout number is multiplied by the multiplier (100), and then the result of multiplying the multiplier (dividend) is divided by the total payout number. By doing this, it is possible to complete the calculation result using only integers without performing calculations after the decimal point, and as a result, truncation after the decimal point can be easily achieved.

図105は、役物比率の演算例を示すフローチャートである。図105の例では、仮に、役物払出数が「7123」、総払出数が「10000」であるとして役物比率を導出する。ここでは、例えば、除算を減算に置き換えることで、数値範囲(0~65535)を超えた数の除算を実現している。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。 Figure 105 is a flowchart showing an example of calculating the reel ratio. In the example of Figure 105, the reel ratio is derived assuming that the reel payout number is "7123" and the total payout number is "10000". Here, for example, division is replaced with subtraction to achieve division of a number that exceeds the numerical range (0 to 65535). The numerical values in step S in this figure will be used only in the explanation of this figure.

まず、比率導出手段は、役物払出数が総払出数より大きいか否か判定する(S1)。その結果、役物払出数が総払出数より大きいと判定されれば(S1におけるYES)、役物払出数または総払出数が適正な数値ではないとして、役物比率が異常であるという結果を導出し、当該演算処理を終了する(S2)。役物払出数が総払出数以下であると判定されれば(S1におけるNO)、比率導出手段は、総払出数が0であるか否か判定する(S3)。その結果、総払出数が0、すなわち、まだメダルの払い出しが行われていない状態であれば(S3におけるYES)、役物比率が0%であると決定して当該演算処理を終了する(S4)。総払出数が0ではないと判定されれば(S3におけるNO)、比率導出手段は、役物払出数と総払出数とが等しいか否か判定する(S5)。その結果、役物払出数と総払出数とが等しいと判定されれば(S5におけるYES)、役物比率が99%であると決定して当該演算処理を終了する(S6)。このように、本実施形態では、役物払出数と総払出数とが等しい場合、役物比率として本来100%と示すところ、99%と表している。こうすることで、役物比率を全て2桁で表すことが可能となる。 First, the ratio derivation means judges whether the number of payouts of the reels is greater than the total number of payouts (S1). As a result, if it is judged that the number of payouts of the reels is greater than the total number of payouts (YES in S1), it derives the result that the number of payouts of the reels or the total number of payouts is not an appropriate value, derives the result that the reels ratio is abnormal, and ends the calculation process (S2). If it is judged that the number of payouts of the reels is less than the total number of payouts (NO in S1), the ratio derivation means judges whether the total number of payouts is 0 (S3). As a result, if the total number of payouts is 0, that is, if no medals have been paid out yet (YES in S3), it determines that the reels ratio is 0% and ends the calculation process (S4). If it is judged that the total number of payouts is not 0 (NO in S3), the ratio derivation means judges whether the number of payouts of the reels and the total number of payouts are equal (S5). As a result, if it is determined that the number of payouts of the reels is equal to the total number of payouts (YES in S5), the reel ratio is determined to be 99% and the calculation process is terminated (S6). In this way, in this embodiment, when the number of payouts of the reels is equal to the total number of payouts, the reel ratio is expressed as 99%, rather than the usual 100%. In this way, it is possible to express all reel ratios in two digits.

役物払出数と総払出数とが等しくないと判定されれば(S5におけるNO)、比率導出手段は、役物払出数「7123」に乗数「100」を乗じ(=「712300」)、被除数(変数)として保持する(S7)。続いて、比率導出手段は、被除数「712300」を除数である総払出数「10000」で除算して商(=「71」)を求める(S8)。かかる商「71」が役物比率となる。これは、役物払出数「7123」を総払出数「10000」で除算した結果を%換算した71.23%の整数部分に相当するので、かかる演算が正しいことが理解できる。 If it is determined that the number of payouts of the reels is not equal to the total number of payouts (NO in S5), the ratio deriving means multiplies the number of payouts of the reels "7123" by the multiplier "100" (= "712300") and holds this as the dividend (variable) (S7). Next, the ratio deriving means divides the dividend "712300" by the divisor, the total number of payouts "10000", to obtain a quotient (= "71") (S8). This quotient "71" becomes the reels ratio. This corresponds to the integer part of 71.23%, which is the percentage of the result of dividing the number of payouts of the reels "7123" by the total number of payouts "10000", and therefore it can be understood that this calculation is correct.

このような役物比率の演算例により、加算、減算、乗算といった簡易な演算のみで、また、整数のみにより、除算を実現することが可能となる。 With these examples of calculating the ratio of game parts, it is possible to achieve division using only simple calculations such as addition, subtraction, and multiplication, and using only integers.

なお、上記では、役物比率の小数点以下を切り捨てることを前提としたが、かかる場合に限らず、役物比率の小数点以下を四捨五入する場合、負となる最終的な被除数の値(ここでは「-7700」)の絶対値が、除数(総払出数、ここでは「10000」)の1/2より大きければ切り捨て、1/2以下であれば切り上げるとすることで実現できる。 In the above, it is assumed that the decimal points of the bonus ratio are rounded down, but this is not the only case. When rounding off the decimal points of the bonus ratio, if the absolute value of the final negative dividend value (here, "-7700") is greater than 1/2 of the divisor (total payout amount, here "10000"), it is rounded down, and if it is less than 1/2, it is rounded up.

ここでは、さらに、役物比率を算出する際の2段階の演算手順、すなわち、役物払出数×乗数の演算(図105のS7)と、乗算結果÷総払出数(図105のS8)とに分けて、有効な演算手順を模索する。具体的に、まず、役物払出数×乗数を実行する複数の演算手順の有効性を検討し、次に、乗算結果÷総払出数を実行する複数の演算手順の有効性を検討する。 Here, we further divide the calculation procedure into two steps when calculating the reel ratio, namely, the calculation of the reel payout number x multiplier (S7 in FIG. 105) and the multiplication result ÷ total payout number (S8 in FIG. 105), and explore effective calculation procedures. Specifically, we first consider the effectiveness of multiple calculation procedures that execute the reel payout number x multiplier, and then consider the effectiveness of multiple calculation procedures that execute the multiplication result ÷ total payout number.

(役物払出数×乗数)
役物払出数を数値として表す場合、その数値範囲から、最大値は3バイトとなり、メモリ容量として3バイト(24ビット)を要す。また、乗数は、ここでは100なので、1バイト(8ビット)で表すことができる。そうすると、役物払出数×乗数の演算は、24ビット×8ビットの演算となる。ここで、メインCPU500aは、8ビット×8ビットの乗算で16ビットの演算結果を得られる8ビットMUL命令を用いて24ビット×8ビットの演算を実行することができる。
(Number of payouts x multiplier)
When the payout number of the reels is expressed as a numerical value, the maximum value is 3 bytes from the numerical range, and 3 bytes (24 bits) are required as memory capacity. In addition, the multiplier is 100 in this case, so it can be expressed in 1 byte (8 bits). In this case, the calculation of the payout number of the reels x the multiplier is a 24-bit x 8-bit calculation. Here, the main CPU 500a can execute a 24-bit x 8-bit calculation using an 8-bit MUL instruction that obtains a 16-bit calculation result by multiplying 8 bits x 8 bits.

また、メインCPU500aには、上述したように、内蔵デバイスとしてメインCPU500aと独立かつ並行して演算を実行可能な乗算器および除算器が内蔵されている。ここで、乗算器は、コマンドの処理と並行して、例えば16ビット×16ビットの乗算を行うものであり、内蔵レジスタの指定のアドレス(被乗数設定レジスタ)に被乗数を書き込み、他の指定のアドレス(乗数設定レジスタ)に乗数を書き込むと、乗算器内で乗算が実行され、所定の時間後、異なる指定のアドレス(乗算結果レジスタ)に、例えば32ビットの乗算結果が設定される機能部である。また、除算器は、コマンドの処理と並行して、例えば32ビット÷32ビットの除算を行うものであり、内蔵レジスタの指定のアドレス(被除数設定レジスタ)に被除数を書き込み、他の指定のアドレス(除数設定レジスタ)に除数を書き込むと、除算器内で除算が実行され、所定の時間後、異なる指定のアドレス(除算結果レジスタ)に、例えば32ビットの除算結果が設定される機能部である。したがって、メインCPU500aでは、上記の8ビットMUL命令に加え、16ビット×16ビットの乗算器(以下、単に16ビット乗算器という)を採用することができる。 As described above, the main CPU 500a has a built-in multiplier and divider that can perform calculations independently and in parallel with the main CPU 500a as built-in devices. Here, the multiplier performs, for example, 16-bit x 16-bit multiplication in parallel with command processing. When the multiplicand is written to a specified address (multiplicand setting register) of the built-in register and the multiplier is written to another specified address (multiplier setting register), multiplication is performed in the multiplier, and after a predetermined time, a different specified address (multiplication result register) is set to, for example, a 32-bit multiplication result. The divider performs, for example, 32-bit ÷ 32-bit division in parallel with command processing. When the dividend is written to a specified address (dividend setting register) of the built-in register and the divisor is written to another specified address (divisor setting register), division is performed in the divider, and after a predetermined time, a different specified address (division result register) is set to, for example, a 32-bit division result. Therefore, in addition to the 8-bit MUL instruction described above, the main CPU 500a can also use a 16-bit x 16-bit multiplier (hereafter simply referred to as a 16-bit multiplier).

ここでは、8ビットMUL命令のみを用いた第1の演算例と、16ビット乗算器を用いた第2の演算例を挙げ、その有効性を比較する。 Here, we present a first calculation example using only an 8-bit MUL instruction and a second calculation example using a 16-bit multiplier, and compare their effectiveness.

(役物払出数×乗数を実行する第1の演算例)
図106は、8ビットMUL命令のみを用いた第1の演算例を説明するための説明図である。8ビットMUL命令のみを用いた第1の演算例では、被乗数(3バイト)×乗数(1バイト)の演算をするため、図106に示すように、被乗数をBCDレジスタ(BCレジスタ、および、Dレジスタ)に格納し、8ビットMUL命令を用い、1バイト単位に分離されたDレジスタの値、Cレジスタの値、Bレジスタの値それぞれと乗数(100)とを、その順に乗算する。そして、乗算した結果である、Dレジスタの値×100、Cレジスタの値×100、Bレジスタの値×100それぞれを加算(積算)することで、BCDレジスタの値×100の演算結果(4バイト)を得ることができる。
(First calculation example of executing the number of payouts of the reels x multiplier)
Fig. 106 is an explanatory diagram for explaining a first calculation example using only the 8-bit MUL instruction. In the first calculation example using only the 8-bit MUL instruction, in order to perform a calculation of the multiplicand (3 bytes) x the multiplier (1 byte), as shown in Fig. 106, the multiplicand is stored in the BCD register (BC register and D register), and the 8-bit MUL instruction is used to multiply the value of the D register, the value of the C register, and the value of the B register separated into 1 byte units by the multiplier (100) in that order. Then, by adding (accumulating) each of the multiplication results, the value of the D register x 100, the value of the C register x 100, and the value of the B register x 100, the calculation result (4 bytes) of the value of the BCD register x 100 can be obtained.

図107は、第1の演算例を実現するための具体的な処理を示したフローチャートであり、図108は、第1の演算例を実現するための具体的なコマンドの一例を示した図である。かかる図107の説明におけるステップSの数値は、本図の説明においてのみ用いることとする。 Figure 107 is a flowchart showing a specific process for implementing the first calculation example, and Figure 108 is a diagram showing an example of a specific command for implementing the first calculation example. The numerical values of step S in the explanation of Figure 107 will be used only in the explanation of this figure.

図107に示すように、まず、累計役物カウンタの値をBCDレジスタに読み出す(S1)。具体的に、図108の2行目のコマンド「LD A,(_EX_YAKR)」によって、アドレス「_EX_YAKR」に格納されている1バイト値がAレジスタに読み出され、3行目のコマンド「LD D,A」によって、Aレジスタの値がDレジスタに複製され、4行目のコマンド「LD BC,(_EX_YAKR+1)」によって、アドレス「_EX_YAKR+1」に格納されている2バイト値がBCレジスタに読み出される。 As shown in FIG. 107, first, the value of the cumulative reel counter is read into the BCD register (S1). Specifically, the command "LD A, (_EX_YAKR)" on the second line of FIG. 108 reads the one-byte value stored at address "_EX_YAKR" into the A register, the command "LD D, A" on the third line copies the value of the A register into the D register, and the command "LD BC, (_EX_YAKR+1)" on the fourth line reads the two-byte value stored at address "_EX_YAKR+1" into the BC register.

次に、図107に示すように、BCDレジスタに格納された累計役物カウンタの値が0であるか否か判定され(S2)、0であれば(S2におけるYES)、乗数を乗じても結果が変わらないので(0なので)、当該第1の演算例を終了する。具体的に、図108の5行目のコマンド「OR A,B」によって、Dレジスタの値と等しいAレジスタの値とBレジスタの値との論理和を演算し、図108の6行目のコマンド「OR A,C」によって、5行目の演算結果であるAレジスタの値とCレジスタの値との論理和を演算し、7行目のコマンド「JR Z,E_PYSAV28」によって、BCDレジスタの論理和が0であれば、他の処理を示す指標「E_PYSAV28」(図示せず)に移動する。なお、コマンド「JR Z,E_PYSAV28」等、Fレジスタの内容によって処理が異なる場合、サイクル数も異なることとなる。例えば、コマンド「JR Z,E_PYSAV28」は、移動を伴う場合、図108のサイクル数のスラッシュより左に示すように3サイクルとなり、移動を伴わない場合、サイクル数のスラッシュより右に示すように2サイクルとなる。以下のコマンドについても、Fレジスタの内容によって処理が異なる場合は同様の表示をしている。 Next, as shown in FIG. 107, it is determined whether the value of the cumulative gambling counter stored in the BCD register is 0 (S2), and if it is 0 (YES in S2), the result will not change even if the multiplier is multiplied (because it is 0), so the first calculation example is terminated. Specifically, the command "OR A, B" on the fifth line of FIG. 108 calculates the logical sum of the value of the A register, which is equal to the value of the D register, and the value of the B register, and the command "OR A, C" on the sixth line of FIG. 108 calculates the logical sum of the value of the A register, which is the result of the calculation on the fifth line, and the value of the C register, and if the logical sum of the BCD register is 0, the command "JR Z, E_PYSAV28" on the seventh line moves to the index "E_PYSAV28" (not shown) indicating another process. Note that if the process differs depending on the contents of the F register, such as the command "JR Z, E_PYSAV28", the number of cycles will also differ. For example, the command "JR Z, E_PYSAV28" will take 3 cycles if movement is involved, as shown to the left of the cycle count slash in Figure 108, and will take 2 cycles if no movement is involved, as shown to the right of the cycle count slash. The following commands are also displayed in a similar manner if their processing differs depending on the contents of the F register.

続いて、図107に示すように、被乗数の最下位バイトであるDレジスタの値と乗数(100)とを乗じ(S3)、その演算結果をDEレジスタに設定する(S4)。具体的に、図108の8行目のコマンド「LD A,D」によって、Dレジスタの値をAレジスタに複製し、9行目のコマンド「MUL HL,A,100」によって、Aレジスタの値と100とを乗じた結果をHLレジスタに保持し、10行目のコマンド「EX DE,HL」によって、HLレジスタの値をDEレジスタに設定する。 Next, as shown in Fig. 107, the value of the D register, which is the least significant byte of the multiplicand, is multiplied by the multiplier (100) (S3), and the result of the calculation is set in the DE register (S4). Specifically, the command "LD A,D" on line 8 of Fig. 108 copies the value of the D register to the A register, the command "MUL HL,A,100" on line 9 stores the result of multiplying the value of the A register by 100 in the HL register, and the command "EX DE,HL" on line 10 sets the value of the HL register in the DE register.

次に、図107に示すように、被乗数の中位バイトであるCレジスタの値と乗数(100)とを乗じ(S5)、その演算結果にDレジスタの値を加算した結果をDレジスタに戻し(S6)、メインRAM500cに設定する(S7)。具体的に、図108の11行目のコマンド「LD A,C」によって、Cレジスタの値をAレジスタに複製し、12行目のコマンド「MUL HL,A,100」によって、Aレジスタの値と100とを乗じた結果をHLレジスタに保持し、13行目のコマンド「ADDWB HL,D」によって、乗算結果のHLレジスタに、10行目のコマンド「EX DE,HL」によって設定されたDEレジスタのうちの上位1バイト(Dレジスタの値)のみを加算し、14行目のコマンド「LD D,L」によって、加算結果のうち下位1バイトをDレジスタに戻し、15行目のコマンド「EX DE,HL」によって、乗算結果の下位2バイトに相当するDEレジスタの値をHLレジスタに移動し、16行目のコマンド「LD (_EX_WRK2),HL」によって、HLレジスタの2バイト値をアドレス「_EX_WRK2」に格納する。 Next, as shown in FIG. 107, the value of the C register, which is the middle byte of the multiplicand, is multiplied by the multiplier (100) (S5), and the result of the calculation is added to the value of the D register, and the result is returned to the D register (S6) and set in the main RAM 500c (S7). Specifically, the command "LD A,C" on line 11 of FIG. 108 copies the value of the C register to the A register, the command "MUL HL,A,100" on line 12 stores the result of multiplying the value of the A register by 100 in the HL register, the command "ADDWB HL,D" on line 13 adds only the most significant byte (the value of the D register) of the DE register set by the command "EX DE,HL" on line 10 to the HL register of the multiplication result, the command "LD D,L" on line 14 returns the least significant byte of the addition result to the D register, the command "EX DE,HL" on line 15 moves the value of the DE register corresponding to the least significant 2 bytes of the multiplication result to the HL register, and the command "LD (_EX_WRK2),HL" on line 16 stores the 2-byte value of the HL register in address "_EX_WRK2".

続いて、図107に示すように、被乗数の最上位バイトであるBレジスタの値と乗数(100)とを乗じ(S8)、その演算結果に、ステップS6の演算結果のうち上位1バイト(Hレジスタの値)とを加算し(S9)、メインRAM500cに設定する(S10)。具体的に、図108の17行目のコマンド「LD A,B」によって、Bレジスタの値をAレジスタに複製し、18行目のコマンド「MUL HL,A,100」によって、Aレジスタの値と100とを乗じた結果をHLレジスタに保持し、19行目のコマンド「ADDWB HL,D」によって、乗算結果のHLレジスタに、15行目のコマンド「EX DE,HL」によって設定されたDEレジスタ(13行目のコマンド「ADDWB HL,D」の演算結果)のうちの上位1バイト(Dレジスタの値)のみを加算し、20行目のコマンド「LD (_EX_WRK2+2),HL」によって、HLレジスタの2バイト値をアドレス「_EX_WRK2+2」に格納する。こうして、アドレス「_EX_WRK2」に、4バイトのBCDレジスタの値×100の演算結果を得ることができる。 Next, as shown in FIG. 107, the value of the B register, which is the most significant byte of the multiplicand, is multiplied by the multiplier (100) (S8), and the most significant byte of the calculation result of step S6 (the value of the H register) is added to the result of the calculation (S9), and the result is set in the main RAM 500c (S10). Specifically, the command "LD A,B" on line 17 of FIG. 108 copies the value of the B register to the A register, the command "MUL HL,A,100" on line 18 stores the result of multiplying the value of the A register by 100 in the HL register, the command "ADDWB HL,D" on line 19 adds only the most significant byte (the value of the D register) of the DE register (the operation result of the command "ADDWB HL,D" on line 13) set by the command "EX DE,HL" on line 15 to the HL register of the multiplication result, and the command "LD (_EX_WRK2+2),HL" on line 20 stores the 2-byte value of the HL register in the address "_EX_WRK2+2". In this way, the operation result of the 4-byte BCD register value x 100 can be obtained in the address "_EX_WRK2".

ここで、当該コマンド例では、図108に示すように、コマンドサイズの合計は38バイトとなり、サイクル数の単純合計(移動命令を考慮することなく単純にサイクル数を合計したもの)は49/48サイクルとなる。 Here, in this command example, as shown in FIG. 108, the total command size is 38 bytes, and the simple total number of cycles (simply adding up the number of cycles without taking into account the movement commands) is 49/48 cycles.

(役物払出数×乗数を実行する第2の演算例)
図109は、16ビット乗算器を用いた第2の演算例を説明するための説明図である。16ビット乗算器を用いた第2の演算では、被乗数(3バイト)×乗数(1バイト)の演算をするため、図109に示すように、被乗数をBCDレジスタ(BCレジスタおよびDレジスタ)に格納し、BCレジスタの値(2バイト値)と乗数(100)とを16ビット乗算器を用いて乗算するとともに、Dレジスタの値それぞれと乗数(100)とを8ビットMUL命令を用いて乗算する。そして、乗算した結果、BCレジスタの値×100、Dレジスタの値×100を加算することで、4バイトのBCDレジスタの値×100の演算結果を得ることができる。
(Second calculation example of executing the number of payouts of the reels x multiplier)
Fig. 109 is an explanatory diagram for explaining a second operation example using a 16-bit multiplier. In the second operation using a 16-bit multiplier, in order to perform an operation of multiplicand (3 bytes) x multiplier (1 byte), as shown in Fig. 109, the multiplicand is stored in the BCD register (BC register and D register), the value of the BC register (2-byte value) is multiplied by the multiplier (100) using a 16-bit multiplier, and each value of the D register is multiplied by the multiplier (100) using an 8-bit MUL instruction. Then, by adding the value of the BC register x 100 and the value of the D register x 100 as a result of the multiplication, an operation result of the value of the 4-byte BCD register x 100 can be obtained.

図110は、第2の演算例を実現するための具体的な処理を示したフローチャートであり、図111は、第2の演算例を実現するための具体的なコマンドの一例を示した図である。かかる図110の説明におけるステップSの数値は、本図の説明においてのみ用いることとする。 Figure 110 is a flow chart showing a specific process for implementing the second calculation example, and Figure 111 is a diagram showing an example of a specific command for implementing the second calculation example. The numerical values of step S in the explanation of Figure 110 will be used only in the explanation of this figure.

図110に示すように、まず、累計役物カウンタの値をBCDレジスタに読み出す(S1)。具体的に、図111の2行目のコマンド「LD A,(_EX_YAKR)」によって、アドレス「_EX_YAKR」に格納されている1バイト値がAレジスタに読み出され、3行目のコマンド「LD D,A」によって、Aレジスタの値がDレジスタに複製され、4行目のコマンド「LD BC,(_EX_YAKR+1)」によって、アドレス「_EX_YAKR+1」に格納されている2バイト値がBCレジスタに読み出される。 As shown in FIG. 110, first, the value of the cumulative reel counter is read into the BCD register (S1). Specifically, the command "LD A, (_EX_YAKR)" on the second line of FIG. 111 reads the one-byte value stored at address "_EX_YAKR" into the A register, the command "LD D, A" on the third line copies the value of the A register into the D register, and the command "LD BC, (_EX_YAKR+1)" on the fourth line reads the two-byte value stored at address "_EX_YAKR+1" into the BC register.

次に、図110に示すように、BCDレジスタに格納された累計役物カウンタの値が0であるか否か判定され(S2)、0であれば(S2におけるYES)、乗数を乗じても結果が変わらないので(0なので)、当該第2の演算例を終了する。具体的に、図111の5行目のコマンド「OR A,B」によって、Dレジスタの値と等しいAレジスタの値とBレジスタの値との論理和を演算し、図111の6行目のコマンド「OR A,C」によって、5行目の演算結果であるAレジスタの値とCレジスタの値との論理和を演算し、7行目のコマンド「JR Z,E_PYSAV28」によって、BCDレジスタの論理和が0であれば、他の処理を示す指標「E_PYSAV28」(図示せず)に移動する。 Next, as shown in FIG. 110, it is determined whether the value of the cumulative reel counter stored in the BCD register is 0 (S2), and if it is 0 (YES in S2), the result will not change even if it is multiplied by the multiplier (because it is 0), so the second calculation example is terminated. Specifically, the command "OR A, B" on the fifth line of FIG. 111 calculates the logical sum of the value of the A register, which is equal to the value of the D register, and the value of the B register, and the command "OR A, C" on the sixth line of FIG. 111 calculates the logical sum of the value of the A register, which is the result of the calculation on the fifth line, and the value of the C register, and if the logical sum of the BCD register is 0, the command "JR Z, E_PYSAV28" on the seventh line moves to the index "E_PYSAV28" (not shown) indicating another process.

続いて、図110に示すように、被乗数の上位2バイトを被乗数設定レジスタに設定し(S3)、乗数(100)を乗数設定レジスタに設定して、乗算を実行する(S4)。具体的に、図111の8行目のコマンド「LD (@MULA16_),BC」によって、BCレジスタの値を被乗数設定レジスタ「@MULA16_」に設定し、9行目のコマンド「LD A,100」によって、Aレジスタに乗数「100」を設定し、10行目のコマンド「OUT (LOW @MULB16_),A」によって、Uレジスタの値をアドレスの上位1バイトとし、アドレス「@MULB16_」を下位1バイトとし、そのアドレスで示される乗数設定レジスタにAレジスタの値を出力する。なお、乗数設定レジスタ「@MULB16_」の上位1バイトにはデフォルト値として「00H」が設定されている。こうして、16ビット乗算器を動作させ、乗算結果レジスタに乗算結果が格納される。 Next, as shown in FIG. 110, the upper two bytes of the multiplicand are set in the multiplicand setting register (S3), the multiplier (100) is set in the multiplier setting register, and the multiplication is performed (S4). Specifically, the command "LD (@MULA16_), BC" on the 8th line of FIG. 111 sets the value of the BC register to the multiplicand setting register "@MULA16_", the command "LD A, 100" on the 9th line sets the multiplier "100" in the A register, and the command "OUT (LOW @MULB16_), A" on the 10th line sets the value of the U register to the upper byte of the address, the address "@MULB16_" to the lower byte, and outputs the value of the A register to the multiplier setting register indicated by that address. The upper byte of the multiplier setting register "@MULB16_" is set to "00H" as the default value. In this way, the 16-bit multiplier is operated and the multiplication result is stored in the multiplication result register.

次に、図110に示すように、乗数の最下位バイトであるDレジスタの値と乗数(100)とを乗じる(S5)。具体的に、図111の11行目のコマンド「LD A,D」によって、Dレジスタの値をAレジスタに複製し、12行目のコマンド「MUL HL,A,100」によって、Aレジスタの値と100とを乗じた結果をHLレジスタに保持する。 Next, as shown in FIG. 110, the value of the D register, which is the least significant byte of the multiplier, is multiplied by the multiplier (100) (S5). Specifically, the command "LD A, D" on line 11 of FIG. 111 copies the value of the D register to the A register, and the command "MUL HL, A, 100" on line 12 stores the result of multiplying the value of the A register by 100 in the HL register.

続いて、図110に示すように、乗算結果レジスタに格納された乗算結果の下位3バイトをDEAレジスタに読み出し(S6)、Aレジスタの値と、ステップS5の乗算結果のうち上位1バイト(Hレジスタの値)とを加算し(S7)、メインRAM500cに設定する(S8)。具体的に、図111の13行目のコマンド「IN A,(LOW @MUL32__+0」によって、Uレジスタの値をアドレスの上位1バイトとし、アドレス「@MULB32__+0」を下位1バイトとし、そのアドレスで示される乗算結果レジスタの値をAレジスタに読み出し、14行目のコマンド「LD ED,(LOW @MUL32__+1」によって、乗算結果レジスタの最下位から2バイト目と3バイト目をDEレジスタに読み出し、15行目のコマンド「ADD A,H」によって、Aレジスタの値に、12行目のコマンド「MUL HL,A,100」によって設定された乗算結果の上位1バイト(Hレジスタの値)を加算し、16行目のコマンド「LD H,A」によって、加算結果(Aレジスタの値)をHレジスタに戻し、17行目のコマンド「OUT (LOW @DIVA32_+0),HL」によって、Uレジスタの値をアドレスの上位1バイトとし、アドレス「@DIVA32_」を下位1バイトとし、そのアドレスで示される被除数設定レジスタ「@DIVA32_」にHLレジスタの値を出力する。 Next, as shown in FIG. 110, the lower 3 bytes of the multiplication result stored in the multiplication result register are read into the DEA register (S6), the value of the A register is added to the upper byte of the multiplication result of step S5 (the value of the H register) (S7), and the result is set in the main RAM 500c (S8). Specifically, the command "IN A, (LOW @MUL32_ __ + 0" on line 13 of FIG. 111 sets the value of the U register as the most significant byte of the address, and the address "@MULB32_ __ + 0" as the least significant byte, and reads the value of the multiplication result register indicated by that address into the A register. The command "LD ED, (LOW @MUL32_ __ + 1" on line 14 reads the second and third bytes from the lowest of the multiplication result register into the DE register. The command "ADD A, H" on line 15 adds the most significant byte of the multiplication result (the value of the H register) set by the command "MUL HL, A, 100" on line 12 to the value of the A register. The command "LD H, A" on line 16 returns the addition result (the value of the A register) to the H register. The command "OUT (LOW @DIVA32_+0), HL" sets the value of the U register to the upper byte of the address, and the address "@DIVA32_" to the lower byte, outputting the value of the HL register to the dividend setting register "@DIVA32_" indicated by that address.

次に、図110に示すように、ステップS6で設定したDEレジスタの値をHLレジスタに複製し(S9)、ステップS7の加算において値が繰り上げされたか否か判定され(S10)、繰り上げされていれば(S10におけるYES)、HLレジスタに繰り上げ分を加算し(S11)、メインRAM500cに設定する(S12)。具体的に、図111の18行目のコマンド「EX DE,HL」によって、DEレジスタの値をHLレジスタに設定し、19行目のコマンド「JR NC,E_PYSAVX1」によって、15行目のコマンド「ADD A,H」によりキャリーフラグが立っているか否か判断され、キャリーフラグが立っていなかったら、21行目の指標「E_PYSAVX1」に移動し、キャリーフラグが立っていれば、20行目のコマンド「INC HL」によって、HLレジスタの値が1だけインクリメントされ、22行目のコマンド「OUT (LOW @DIVA32_+2),HL」によって、Uレジスタの値をアドレスの上位1バイトとし、アドレス「@DIVA32_+2」を下位1バイトとし、そのアドレスで示される除数設定レジスタにHLレジスタの値を出力する。 Next, as shown in FIG. 110, the value of the DE register set in step S6 is copied to the HL register (S9), and it is determined whether the value was carried up in the addition in step S7 (S10). If the value was carried up (YES in S10), the carried amount is added to the HL register (S11) and set in the main RAM 500c (S12). Specifically, the command "EX DE,HL" on line 18 of FIG. 111 sets the value of the DE register to the HL register, the command "JR NC,E_PYSAVX1" on line 19 determines whether the carry flag is set by the command "ADD A,H" on line 15, and if the carry flag is not set, it moves to the index "E_PYSAVX1" on line 21. If the carry flag is set, the command "INC HL" on line 20 increments the value of the HL register by 1, and the command "OUT (LOW @DIVA32_+2),HL" on line 22 sets the value of the U register to the upper byte of the address and the address "@DIVA32_+2" to the lower byte, and outputs the value of the HL register to the divisor setting register indicated by that address.

ここで、当該コマンド例では、図111に示すように、コマンドサイズの合計は43バイトとなり、サイクル数の単純合計は59/57サイクルとなる。 Here, in this command example, as shown in FIG. 111, the total command size is 43 bytes, and the simple total number of cycles is 59/57 cycles.

以上説明したように、役物払出数×乗数を実行する第1の演算例と、役物払出数×乗数を実行する第2の演算例とを比較すると、コマンドサイズの合計およびサイクル数の単純合計のいずれも第1の演算例の方が小さくなる。したがって、スロットマシン400で役物払出数×乗数を実行する場合、図106~図108を用いて説明したように、8ビットMUL命令のみによって実行する方が好ましい。 As explained above, when comparing the first calculation example that executes the number of reel payouts times the multiplier with the second calculation example that executes the number of reel payouts times the multiplier, the first calculation example has a smaller total command size and a smaller simple total number of cycles. Therefore, when executing the number of reel payouts times the multiplier in the slot machine 400, it is preferable to execute it using only the 8-bit MUL command, as explained using Figures 106 to 108.

なお、上述した第1の演算例では、図108の16行目および20行目のコマンドとしてコマンド「LD」を用いたが、それ以後の処理態様に応じ、図112のように、これに代えて、16行目および20行目のコマンドとしてコマンド「OUT」を用いてもよい。図112の場合でも、図108同様、コマンドサイズの合計は38バイトとなり、サイクル数の単純合計は49/48サイクルとなる。 In the first calculation example described above, the command "LD" is used as the command on lines 16 and 20 of FIG. 108, but depending on the processing mode thereafter, the command "OUT" may be used instead as the command on lines 16 and 20 as shown in FIG. 112. In the case of FIG. 112, as in FIG. 108, the total command size is 38 bytes, and the simple total number of cycles is 49/48 cycles.

(乗算結果÷総払出数)
次に、役物比率を算出する際の複数段階の演算手順のうち、(役物払出数×乗数の)乗算結果÷総払出数について有効性を検討する。上述したように、役物払出数(3バイト)×乗数(1バイト)の乗算結果は、最大4バイトとなるため、メモリの容量として4バイト以上を要する。したがって、ここでは、乗算結果を4バイト(32ビット)で表す。また、総払出数も、最大値が3バイトとなるため、メモリ容量として3バイト以上を要する。したがって、総払出数も4バイトで表す。そうすると、乗算結果÷総払出数の演算は32ビット÷32ビットの演算となる。メインCPU500aは、乗算結果から総払出数を繰り返し減算し、その減算回数で32ビット÷32ビットの演算を実現することができる。
(Multiplication result / total number of payouts)
Next, among the multiple steps of the calculation procedure when calculating the ratio of the bonus items, the effectiveness of the multiplication result (the number of bonus items paid out × the multiplier) ÷ the total number of bonus items paid out will be examined. As described above, the multiplication result of the number of bonus items paid out (3 bytes) × the multiplier (1 byte) is a maximum of 4 bytes, so 4 bytes or more are required as memory capacity. Therefore, the multiplication result is expressed in 4 bytes (32 bits). The total number of bonus items also requires 3 bytes or more as memory capacity, so the maximum value is 3 bytes. Therefore, the total number of bonus items is also expressed in 4 bytes. In this case, the calculation of the multiplication result ÷ the total number of bonus items is a 32-bit ÷ 32-bit calculation. The main CPU 500a repeatedly subtracts the total number of bonus items from the multiplication result, and the number of subtractions can realize the 32-bit ÷ 32-bit calculation.

しかし、単純に、乗算結果から総払出数を繰り返し減算していく方法では、役物比率に相当する回数分、繰り返し乗算結果から総払出数を減算しなければならない。そうすると、減算処理が最大で100回実行されることになる。そこで、除数である総払出数を整数倍して減算することで減算処理の回数を削減することが考えられる。例えば、役物払出数が「7123」、総払出数が「10000」であった場合に、被除数である乗算結果「712300」から総払出数「10000」を単純に減算せず、総払出数「10000」に整数「10」を乗じた「100000」を減算することで、役物比率の2桁目(10の桁)に相当する「7」を導出することができる。また、更新された(減算された)乗算結果から元の総払出数「10000」を減算することで、役物比率の1桁目(1の桁)に相当する「1」を導出することができる。このように、総払出数(除数)を整数倍することで、ここでは、減算処理を多くとも20回に削減することが可能となる。 However, in the method of simply repeatedly subtracting the total payout number from the multiplication result, the total payout number must be repeatedly subtracted from the multiplication result the number of times corresponding to the ratio of the reel. In that case, the subtraction process will be performed up to 100 times. Therefore, it is possible to reduce the number of subtraction processes by multiplying the total payout number, which is the divisor, by an integer and subtracting it. For example, if the number of reel payouts is "7123" and the total payout number is "10000", the total payout number "10000" is multiplied by the integer "10" by the multiplication result "712300", which is the dividend, and "100000" is subtracted, which is the total payout number "10000" multiplied by the integer "10", to derive "7", which corresponds to the second digit (tens digit) of the reel ratio. In addition, by subtracting the original total payout number "10000" from the updated (subtracted) multiplication result, "1" which corresponds to the first digit (ones digit) of the reel ratio can be derived. In this way, by multiplying the total payout number (divisor) by an integer, it is possible to reduce the number of subtraction processes to a maximum of 20.

ただし、メインCPU500aでは、2進数で演算が行われるので、ここでは、10進数の桁上がりに相当する数「10」の代わりに、2進数の桁上がりに対応する数「2」を用いる。したがって、ここでは、乗算結果「712300」から、総払出数「10000」に、2の累乗数である所定の整数「64(2の6乗)」を乗じた数を減算し、以降、整数を「32(2の5乗)」→「16(2の4乗)」→「8(2の3乗)」→「4(2の2乗)」→「2(2の1乗)」→「1(2の0乗)」の順に変更して総払出数を乗じ、乗算結果から減算する。ここで、総払出数に乗じる整数を、2の累乗数である64から開始しているのは、役物比率が0~99の範囲に収まるため、「128(2の7乗)」以上の数値を減算する必要がないからである。 However, since the main CPU 500a performs calculations in binary, the number "2" corresponding to a carry in a binary number is used here instead of the number "10" corresponding to a carry in a decimal number. Therefore, here, the total payout number "10,000" multiplied by a predetermined integer "64 (2 to the 6th power)" which is a power of 2 is subtracted from the multiplication result "712,300", and the integer is then changed in the order of "32 (2 to the 5th power)" → "16 (2 to the 4th power)" → "8 (2 to the 3rd power)" → "4 (2 to the 2nd power)" → "2 (2 to the 1st power)" → "1 (2 to the 0th power)" to multiply the total payout number, and subtracted from the multiplication result. Here, the integer multiplied by the total payout number starts from 64, which is a power of 2, because the ratio of the roles falls within the range of 0 to 99, so there is no need to subtract a number greater than "128 (2 to the 7th power)".

また、上述したように、メインCPU500aには、例えば、32ビット÷32ビットの除算器(以下、単に32ビット除算器という)が内蔵されている。したがって、メインCPU500aでは、上記の乗算結果から、総払出数に2の累乗数を乗じた数を繰り返し減算する演算(以下、単に2の累乗数を乗じた数の繰り返し減算という)の代わりに、32ビット除算器を採用することができる。 As described above, the main CPU 500a has a built-in 32-bit/32-bit divider (hereinafter simply referred to as a 32-bit divider). Therefore, the main CPU 500a can use a 32-bit divider instead of repeatedly subtracting a number obtained by multiplying the total payout number by a power of 2 from the above multiplication result (hereinafter simply referred to as repeatedly subtracting a number multiplied by a power of 2).

ここでは、2の累乗数を乗じた数の繰り返し減算を用いた第3の演算例と、32ビット除算器を用いた第4の演算例を挙げ、その有効性を比較する。 Here, we present a third calculation example using repeated subtraction of a number multiplied by a power of 2, and a fourth calculation example using a 32-bit divider, and compare their effectiveness.

(乗算結果÷総払出数を実行する第3の演算例)
図113は、2の累乗数を乗じた数の繰り返し減算を用いた第3の演算例を説明するための説明図である。2の累乗数を乗じた数の繰り返し減算を用いた第3の演算例では、乗算結果である被乗数(4バイト)÷総払出数である除数(4バイト)の演算例を示す。ここで、被除数は「712300」、除数は本来の除数「10000」に64を乗じた「64×10000」と仮定する。
(Third calculation example of multiplication result divided by total payout amount)
FIG. 113 is an explanatory diagram for explaining a third calculation example using repeated subtraction of a number multiplied by a power of 2. In the third calculation example using repeated subtraction of a number multiplied by a power of 2, a calculation example of a multiplicand (4 bytes) which is the multiplication result divided by a divisor (4 bytes) which is the total payout number is shown. Here, it is assumed that the dividend is "712300" and the divisor is "64 x 10000" which is the original divisor "10000" multiplied by 64.

図113に示すように、1回目の判定において、被除数≧除数と判定されれば、被乗数から除数を減算できるので、比率導出手段は、被除数「712300」から除数「64×10000」を減算して被除数を「72300」に更新するとともに、商「0」に「64」を加算して商を「64(2進数で表すと1000000B)」に更新する。2回目~4回目の判定では、被除数<除数なので、除数の減算を行わない。5回目の判定において、被除数≧除数と判定されれば、比率導出手段は、被除数「72300」から除数「4×10000」を減算して被除数を「32300」に更新するとともに、商「64」に「4」を加えて商を「68(2進数で表すと1000100B)」に更新する。同様に、6回目の判定において、被除数≧除数と判定されれば、比率導出手段は、被除数「32300」から除数「2×10000」を減算して被除数を「12300」に更新するとともに、商「68」に「2」を加えて商を「70(2進数で表すと1000110B)」に更新する。7回目の判定において、被除数≧除数と判定されれば、比率導出手段は、被除数「12300」から除数「1×10000」を減算して被除数を「2300」に更新するとともに、商「70」に「1」を加えて商を「71(2進数で表すと1000111B)」に更新する。 As shown in FIG. 113, if it is determined in the first judgment that the dividend is greater than or equal to the divisor, the divisor can be subtracted from the multiplicand, so the ratio derivation means subtracts the divisor "64 x 10000" from the dividend "712300" to update the dividend to "72300", and adds "64" to the quotient "0" to update the quotient to "64 (1000000B in binary)". In the second to fourth judgments, the dividend is less than the divisor, so no subtraction of the divisor is performed. If it is determined in the fifth judgment that the dividend is greater than or equal to the divisor, the ratio derivation means subtracts the divisor "4 x 10000" from the dividend "72300" to update the dividend to "32300", and adds "4" to the quotient "64" to update the quotient to "68 (1000100B in binary)". Similarly, if it is determined in the sixth judgment that the dividend is greater than or equal to the divisor, the ratio derivation means subtracts the divisor "2 x 10,000" from the dividend "32,300" to update the dividend to "12,300" and adds "2" to the quotient "68" to update the quotient to "70 (1,000,110B in binary)". If it is determined in the seventh judgment that the dividend is greater than or equal to the divisor, the ratio derivation means subtracts the divisor "1 x 10,000" from the dividend "12,300" to update the dividend to "2,300" and adds "1" to the quotient "70" to update the quotient to "71 (1,000,111B in binary)".

整数=「64」から、減算ステップおよび加算ステップを7回繰り返すと、整数は小数点以下が切り捨てられて0(<1)となるので、演算処理が終了し、役物比率は、その時点の商「71」となる。これは、役物払出数「7123」を総払出数「10000」で除算した結果を%換算した71.23%の整数部分に相当するので、かかる演算が正しいことが理解できる。 When the subtraction and addition steps are repeated seven times from the integer "64", the integer is rounded down to 0 (<1), the calculation process ends, and the reel ratio becomes the quotient "71" at that point. This corresponds to the integer part of 71.23%, which is the percentage result of dividing the reel payout number "7123" by the total payout number "10000", so it can be seen that this calculation is correct.

図114は、第3の演算例を実現するための具体的な処理を示したフローチャートであり、図115は、第3の演算例を実現するための具体的なコマンドの一例を示した図である。かかる図114の説明におけるステップSの数値は、本図の説明においてのみ用いることとする。なお、ここでは、4バイトの除数を格納しているアドレス「_EX_WRK1」と、4バイトの被除数を格納しているアドレス「_EX_WRK2」とが連続して配置されているとする。 Figure 114 is a flow chart showing specific processing for realizing the third calculation example, and Figure 115 is a diagram showing an example of a specific command for realizing the third calculation example. The numerical values of step S in the explanation of Figure 114 will be used only in the explanation of this figure. Note that here, it is assumed that the address "_EX_WRK1" storing the 4-byte divisor and the address "_EX_WRK2" storing the 4-byte dividend are arranged consecutively.

図114に示すように、まず、商を0に、整数(2の累乗数)を64に初期化し(S1)、被除数の上位2バイトと除数の上位2バイトを読み出し(S2)、被除数の上位2バイトが除数の上位2バイト未満であるか否か判定する(S3)。そして被除数の上位2バイトが除数の上位2バイト未満であれば(S3におけるYES)、ステップS10に移動する。具体的に、図115の1行目のコマンド「XOR A,A」によって商を示すAレジスタに「0」を設定し、2行目のコマンド「LD C,64」によって整数を示すCレジスタに「64」を設定し、4行目のコマンド「LD HL,_EX_WRK2+2」によって、被除数(役物払出数×乗数の乗算結果)を格納しているアドレス「_EX_WRK2」の値に2を加算した値(上位2バイトの値)をHLレジスタに読み出し、5行目のコマンド「LD DE,(HL-4)」によって、被除数を格納しているアドレス「_EX_WRK2」の4バイト下位に位置するアドレス「_EX_WRK1」に格納された除数の上位2バイトをDEレジスタに読み出し、6行目のコマンド「JCP C,(HL),DE,E_PYSAV27」によって、HLレジスタで示されるアドレスの値(被除数の上位2バイト)と、DEレジスタの値(除数の上位2バイト)とが比較され、キャリーフラグが立っていれば、すなわち、被除数の上位2バイトが除数の上位2バイト未満であれば、20行目の指標「E_PYSAV27」に移動する。 As shown in Figure 114, first, the quotient is initialized to 0 and the integer (power of 2) is initialized to 64 (S1), the most significant 2 bytes of the dividend and the most significant 2 bytes of the divisor are read (S2), and it is determined whether the most significant 2 bytes of the dividend are less than the most significant 2 bytes of the divisor (S3). If the most significant 2 bytes of the dividend are less than the most significant 2 bytes of the divisor (YES in S3), the process moves to step S10. Specifically, the command "XOR A, A" on the first line of FIG. 115 sets "0" to the A register, which indicates the quotient, the command "LD C, 64" on the second line sets "64" to the C register, which indicates an integer, the command "LD HL, _EX_WRK2+2" on the fourth line reads the value (the upper 2 bytes) obtained by adding 2 to the value of the address "_EX_WRK2" storing the dividend (the multiplication result of the number of payouts of the reel x the multiplier) into the HL register, the command "LD DE, (HL-4)" on the fifth line reads the upper 2 bytes of the divisor stored in the address "_EX_WRK1", which is 4 bytes below the address "_EX_WRK2" storing the dividend, into the DE register, and the command "JCP "C, (HL), DE, E_PYSAV27" compares the value of the address indicated by the HL register (the most significant two bytes of the dividend) with the value of the DE register (the most significant two bytes of the divisor), and if the carry flag is set, i.e., if the most significant two bytes of the dividend are less than the most significant two bytes of the divisor, it moves to the index "E_PYSAV27" on the 20th line.

次に、図114に示すように、被除数の上位2バイトが除数の上位2バイト以上であれば(S3におけるNO)、後段の計算のため、被除数の下位2バイトと除数の下位2バイトを読み出し(S4)、被除数の上位2バイトと除数の上位2バイトとが等しくないか否か、すなわち、被除数の上位2バイトが除数の上位2バイトより大きいか否か判定する(S5)。そして被除数の上位2バイトと除数の上位2バイトとが等しくなければ(S5におけるYES)、ステップS8に移動する。具体的に、図115の7行目のコマンド「LD HL,_EX_WRK1」によって、除数を格納しているアドレス「_EX_WRK1」の下位2バイトをHLレジスタに読み出し、8行目のコマンド「LD DE,(HL+4)」によって、除数を格納しているアドレス「_EX_WRK1」の4バイト上位に位置するアドレス「_EX_WRK2」に格納された被除数の下位2バイトをDEレジスタに読み出し、9行目のコマンド「JR NZ,E_PYSAV26」によって、6行目のコマンドの実行によってゼロフラグが立っていなければ、12行目の指標「E_PYSAV26」に移動する。 Next, as shown in Fig. 114, if the upper two bytes of the dividend are equal to or greater than the upper two bytes of the divisor (NO in S3), the lower two bytes of the dividend and the lower two bytes of the divisor are read for the subsequent calculation (S4), and it is determined whether the upper two bytes of the dividend are not equal to the upper two bytes of the divisor, i.e., whether the upper two bytes of the dividend are greater than the upper two bytes of the divisor (S5). If the upper two bytes of the dividend are not equal to the upper two bytes of the divisor (YES in S5), the process moves to step S8. Specifically, the command "LD HL, _EX_WRK1" on line 7 of FIG. 115 reads the two lowest bytes of the address "_EX_WRK1" storing the divisor into the HL register, the command "LD DE, (HL+4)" on line 8 reads the two lowest bytes of the dividend stored in address "_EX_WRK2," which is four bytes higher than the address "_EX_WRK1" storing the divisor, into the DE register, and the command "JR NZ, E_PYSAV26" on line 9 moves to the index "E_PYSAV26" on line 12 if the zero flag is not set by executing the command on line 6.

続いて、図114に示すように、ステップS4で読み出した被除数の下位2バイトが除数の下位2バイトより大きいか否か判定し(S6)、被除数の下位2バイトが除数の下位2バイトより大きい場合(S6におけるYES)、ステップS8に移動し、除数の下位2バイトが除数の下位2バイト以下の場合(S6におけるNO)、ステップS6において、被除数の下位2バイトと除数の下位2バイトとが等しくないか否か、すなわち、被除数の下位2バイトが除数の下位2バイト未満であるか否か判定する(S7)。そして被除数の下位2バイトと除数の下位2バイトとが等しくなければ(S7におけるYES)、ステップS10に移動する。具体的に、図115の10行目のコマンド「JCP C,(HL),DE,E_PYSAV26」によって、HLレジスタで示されるアドレスの値(除数の下位2バイト)と、DEレジスタの値(被除数の下位2バイト)とが比較され、キャリーフラグが立っていれば、すなわち、被除数の下位2バイトが被除数の下位2バイトより大きいと、12行目の指標「E_PYSAV26」に移動し、11行目のコマンド「JR NZ,E_PYSAV27」によって、10行目のコマンドの実行によってゼロフラグが立っていなければ、20行目の指標「E_PYSAV27」に移動する。 Next, as shown in FIG. 114, it is determined whether the two least significant bytes of the dividend read in step S4 are greater than the two least significant bytes of the divisor (S6). If the two least significant bytes of the dividend are greater than the two least significant bytes of the divisor (YES in S6), the process proceeds to step S8. If the two least significant bytes of the divisor are equal to or less than the two least significant bytes of the divisor (NO in S6), it is determined in step S6 whether the two least significant bytes of the dividend are not equal to the two least significant bytes of the divisor, i.e., whether the two least significant bytes of the dividend are less than the two least significant bytes of the divisor (S7). If the two least significant bytes of the dividend are not equal to the two least significant bytes of the divisor (YES in S7), the process proceeds to step S10. Specifically, the command "JCP C, (HL), DE, E_PYSAV26" on line 10 of FIG. 115 compares the value of the address indicated by the HL register (the lowest 2 bytes of the divisor) with the value of the DE register (the lowest 2 bytes of the dividend). If the carry flag is set, i.e., if the lowest 2 bytes of the dividend are greater than the lowest 2 bytes of the dividend, it moves to the index "E_PYSAV26" on line 12. The command "JR NZ, E_PYSAV27" on line 11 moves to the index "E_PYSAV27" on line 20 if the zero flag is not set by executing the command on line 10.

次に、図114に示すように、被除数が除数以上であれば、商に、現在の整数を加算し(S8)、被除数から除数を減算して、その減算結果を新たな被除数として更新する(S9)。具体的に、図115の13行目のコマンド「ADD A,C」によって、商を示すAレジスタに、整数を示すCレジスタの値を加算し、14行目のコマンド「SUB DE,(HL)」によって、被除数の下位2バイトが格納されたDEレジスタの値から、HLレジスタで示されるアドレスに格納された除数の下位2バイトの値を減算してDEレジスタを更新し、15行目のコマンド「LD (HL+4),DE」によって、HLレジスタで示される除数を格納しているアドレスの4バイト上位に位置する被除数を示すアドレスに、減算結果である更新された被除数の下位2バイトを格納し、16行目のコマンド「LD DE,(HL+2)」によって、HLレジスタで示されるアドレスに格納された除数の上位2バイトをDEレジスタに読み出し、17行目のコマンド「LD HL,(HL+6)」によって、HLレジスタで示される除数を格納しているアドレスの6バイト上位に位置する被除数の上位2バイトをHLレジスタに読み出し、18行目のコマンド「SBC HL,DE」によって、被除数の上位2バイトが格納されたHLレジスタの値から、除数の上位2バイトが格納されたDEレジスタの値を減算してHLレジスタを更新し、19行目のコマンド「LD (_EX_WRK2+2),HL」によって、アドレス「_EX_WRK2」が示す被除数の上位2バイトに、減算結果である更新された被除数の上位2バイトを格納する。 Next, as shown in FIG. 114, if the dividend is greater than or equal to the divisor, the current integer is added to the quotient (S8), the divisor is subtracted from the dividend, and the subtraction result is updated as the new dividend (S9). Specifically, the command "ADD A, C" on line 13 of FIG. 115 adds the value of the C register, which indicates an integer, to the A register, which indicates the quotient. The command "SUB DE, (HL)" on line 14 subtracts the value of the lower two bytes of the divisor stored at the address indicated by the HL register from the value of the DE register in which the lower two bytes of the dividend are stored, thereby updating the DE register. The command "LD (HL+4), DE" on line 15 stores the lower two bytes of the updated dividend, which is the result of the subtraction, in the address indicating the dividend located four bytes higher than the address in which the divisor indicated by the HL register is stored. The command "LD DE, (HL+2)" on line 16 reads the upper two bytes of the divisor stored at the address indicated by the HL register into the DE register. The command "HL, (HL+6)" reads the upper two bytes of the dividend, located 6 bytes above the address storing the divisor indicated by the HL register, into the HL register, and the command "SBC HL,DE" on line 18 subtracts the value of the DE register, in which the upper two bytes of the divisor are stored, from the value of the HL register, in which the upper two bytes of the dividend are stored, to update the HL register, and the command "LD (_EX_WRK2+2), HL" on line 19 stores the upper two bytes of the updated dividend, which is the result of the subtraction, in the upper two bytes of the dividend indicated by the address "_EX_WRK2".

続いて、図114に示すように、除数を2で除算(右にビットシフト)し、新たな除数として更新し(S10)、整数を2で除算(右にビットシフト)し、新たな整数として更新し(S11)、整数が0ではないか否か判定し(S12)、0でなければ(S12におけるYES)、ステップS2からの処理を繰り返し、0であれば(S12におけるNO)、役物比率をメインRAM500cに設定し(S13)、当該2の累乗数を乗じた数を繰り返し減算する処理を終了する。具体的に、図115の21行目のコマンド「LD HL,_EX_WRK1+3」によって、除数の最上位1バイトを示すアドレス「_EX_WRK1+3」をHLレジスタに読み出し、22行目のコマンド「SRL (HL)」によってHLレジスタで示されるアドレスの値(除数の4バイト目)が右に1だけビットシフトされ、23行目のコマンド「DEC HL」によって、HLレジスタの値が1だけデクリメントされ、24行目のコマンド「RR (HL)」によってHLレジスタで示されるアドレスの値(除数の下位から3バイト目)が右に1だけビットシフトされ、25行目のコマンド「DEC HL」によって、HLレジスタの値が1だけデクリメントされ、26行目のコマンド「RR (HL)」によってHLレジスタで示されるアドレスの値(除数の下位から2バイト目)が右に1だけビットシフトされ、27行目のコマンド「DEC HL」によって、HLレジスタの値が1だけデクリメントされ、28行目のコマンド「RR (HL)」によってHLレジスタで示されるアドレスの値(除数の最下位1バイト)が右に1だけビットシフトされ、29行目のコマンド「SRL C」によって、整数を示すCレジスタの値が右に1だけビットシフトされ、30行目のコマンド「JR NZ,E_PYSAV25」によって、29行目のコマンドの実行によってゼロフラグが立っていなければ、3行目の指標「E_PYSAV25」に移動し、32行目の「LD (_EX_DPA7),A」によって、商であるAレジスタの値をアドレス「_EX_DPA7」に格納する。 Next, as shown in FIG. 114, the divisor is divided by 2 (bit shifted to the right) and updated as a new divisor (S10), the integer is divided by 2 (bit shifted to the right) and updated as a new integer (S11), it is determined whether the integer is not 0 (S12), and if it is not 0 (YES in S12), the process from step S2 is repeated, and if it is 0 (NO in S12), the role ratio is set in the main RAM 500c (S13), and the process of repeatedly subtracting the number multiplied by the power of 2 is terminated. Specifically, the command "LD HL, _EX_WRK1+3" on line 21 of FIG. 115 reads the address "_EX_WRK1+3" indicating the most significant byte of the divisor into the HL register, the command "SRL (HL)" on line 22 bit-shifts the value of the address indicated by the HL register (the fourth byte of the divisor) to the right by one bit, the command "DEC HL" on line 23 decrements the value of the HL register by one, the command "RR (HL)" on line 24 bit-shifts the value of the address indicated by the HL register (the third byte from the lowest order of the divisor) to the right by one bit, the command "DEC HL" on line 25 decrements the value of the HL register by one, the command "RR (HL)" on line 26 bit-shifts the value of the address indicated by the HL register (the second byte from the lowest order of the divisor) to the right by one bit, and the command "DEC The command "RR (HL)" on line 28 decrements the value of the HL register by 1, the command "RR (HL)" on line 28 bit-shifts the value of the address indicated by the HL register (the least significant byte of the divisor) to the right by 1, the command "SRL C" on line 29 bit-shifts the value of the C register, which indicates an integer, to the right by 1, the command "JR NZ, E_PYSAV25" on line 30 moves it to the index "E_PYSAV25" on line 3 if the zero flag is not set by executing the command on line 29, and the "LD (_EX_DPA7), A" on line 32 stores the value of the A register, which is the quotient, in address "_EX_DPA7".

かかる第3の演算例により、加算、減算、乗算といった簡易な演算のみで、また、整数のみにより、除算を実現することが可能となる。また、ここでは、減算および加算処理を7回繰り返せば足りるので、演算処理を迅速に行うことができる。さらに、役物比率の小数点以下を切り捨てることを前提とすると、誤差が生じないので、役物比率を正確に導出することが可能となる。 This third calculation example makes it possible to realize division using only simple calculations such as addition, subtraction, and multiplication, and using only integers. Here, it is sufficient to repeat the subtraction and addition process seven times, so the calculation process can be performed quickly. Furthermore, assuming that the decimal points of the reel ratio are truncated, no error occurs, making it possible to accurately derive the reel ratio.

ここで、当該コマンド例では、図115に示すように、コマンドサイズの合計は59バイトとなり、サイクル数の単純合計は95/90サイクルとなる。また、実際のサイクル数は、以下のようになる。すなわち、当該処理では、指標「E_PYSAV25」の次のコマンド(4行目)から指標「E_PYSAV28」の直前のコマンド(30行目)までを7回ループすることとなる。このとき、7回全てのループにおいて、6行目のコマンド「JCP C,(HL),DE,E_PYSAV27」で指標「E_PYSAV27」に移動した場合、7行目~19行目のコマンドを実行しないので、サイクル数は最小の321(3+45(最初の6ループ)×6+44(7ループ目)+4)サイクルとなる。一方、全ループにおいて、6行目のコマンド「JCP C,(HL),DE,E_PYSAV27」で指標「E_PYSAV27」に移動しなかった場合、サイクル数は最大となる。ただし、役物比率は100%を越えることはなく、95%および63%のときの処理負荷が最大になることを勘案すると、サイクル数の最大は566(3+61(初回ループ)+83(残りの6ループ)×6+4)サイクルとなる。したがって、サイクル数の実質的な合計は、321~566サイクルの範囲となる。 In this example command, as shown in FIG. 115, the total command size is 59 bytes, and the simple total number of cycles is 95/90 cycles. The actual number of cycles is as follows. That is, in this process, the command from the next command (line 4) of index "E_PYSAV25" to the command immediately before index "E_PYSAV28" (line 30) is looped 7 times. In this case, if the command "JCP C, (HL), DE, E_PYSAV27" on line 6 is used to move to index "E_PYSAV27" in all 7 loops, the commands on lines 7 to 19 are not executed, so the number of cycles is the minimum of 321 (3 + 45 (first 6 loops) x 6 + 44 (seventh loop) + 4) cycles. On the other hand, if the command on line 6, "JCP C, (HL), DE, E_PYSAV27," does not move to the index "E_PYSAV27" in all loops, the number of cycles will be at its maximum. However, considering that the role ratio never exceeds 100% and that the processing load is at its maximum when it is 95% and 63%, the maximum number of cycles will be 566 (3 + 61 (first loop) + 83 (remaining 6 loops) x 6 + 4). Therefore, the actual total number of cycles will be in the range of 321 to 566 cycles.

なお、ここでも、役物比率の小数点以下を切り捨てることを前提としたが、かかる場合に限らず、役物比率の小数点以下を四捨五入する場合、減算および加算処理を8回繰り返し、8回目の判定において、被除数≧除数と判定されれば、商に1を加えるとすることで実現できる。 Note that, even here, it is assumed that the decimal points of the reel ratio are truncated, but this is not the only case. When rounding off the decimal points of the reel ratio, subtraction and addition processes are repeated eight times, and if it is determined in the eighth judgment that the dividend is greater than or equal to the divisor, this can be achieved by adding 1 to the quotient.

(乗算結果÷総払出数を実行する第4の演算例)
図116は、第4の演算例を実現するための具体的な処理を示したフローチャートであり、図117は、第4の演算例を実現するための具体的なコマンドの一例を示した図である。かかる図116の説明におけるステップSの数値は、本図の説明においてのみ用いることとする。なお、ここでは、図112を用いて説明したように、役物払出数×乗数の乗算結果である被除数は、すでに被除数設定レジスタ「DIVA32」に設定されているとする。
(Fourth calculation example of multiplication result divided by total payout amount)
Fig. 116 is a flow chart showing a specific process for realizing the fourth calculation example, and Fig. 117 is a diagram showing an example of a specific command for realizing the fourth calculation example. The numerical value of step S in the explanation of Fig. 116 is used only in the explanation of this figure. It is assumed here that the dividend, which is the multiplication result of the number of payouts of the reels multiplied by the multiplier, has already been set in the dividend setting register "DIVA32" as explained using Fig. 112.

図116に示すように、まず、累計役物カウンタの値をレジスタに呼び出し、除数設定レジスタ「DIVB32」に設定する(S1)。具体的に、図117の1行目のコマンド「LD HL,(_EX_PRZR)」によって、累計役物カウンタを示すアドレス「_EX_PRZR」に格納されている値がHLレジスタに読み出され、2行目のコマンド「LD A,(_EX_PRZR+2)」によって、累計役物カウンタの上位1バイトを示すアドレス「_EX_PRZR+2」に格納されている値がAレジスタに読み出され、3行目のコマンド「OUT (LOW @DIVB32_+0),HL」によって、Uレジスタの値をアドレスの上位1バイトとし、アドレス「@DIVB32_」を下位1バイトとし、そのアドレスに、HLレジスタの値を出力し、4行目のコマンド「OUT (LOW @DIVB32_+2),A」によって、Uレジスタの値をアドレスの上位1バイトとし、アドレス「@DIVB32_+2」を下位1バイトとし、そのアドレスに、Aレジスタの値を出力する。なお、除数設定レジスタ「@DIVB32_」の上位1バイトにはデフォルト値として「00H」が設定されている。 As shown in FIG. 116, first, the value of the cumulative feature counter is read into a register and set in the divisor setting register "DIVB32" (S1). Specifically, the command "LD HL, (_EX_PRZR)" on the first line of FIG. 117 reads the value stored in the address "_EX_PRZR" indicating the cumulative feature counter into the HL register, the command "LD A, (_EX_PRZR+2)" on the second line reads the value stored in the address "_EX_PRZR+2" indicating the upper byte of the cumulative feature counter into the A register, the command "OUT (LOW @DIVB32_+0),HL" on the third line sets the value of the U register to the upper byte of the address and the address "@DIVB32_" to the lower byte, and outputs the value of the HL register to that address, and the command "OUT (LOW By "@DIVB32_+2), A", the value of the U register is set as the upper byte of the address, and the address "@DIVB32_+2" is set as the lower byte, and the value of the A register is output to that address. Note that the upper byte of the divisor setting register "@DIVB32_" is set to "00H" as the default value.

次に、図116に示すように、除算の時間待ちを行い(S2)、所定時間経過後、演算結果をメインRAM500cに設定する(S3)。具体的に、図117の5~8行目のコマンド「NOP」によって4サイクルの時間を消費させ、9行目のコマンド「IN A,(LOW @DIV32__+0)によって、Uレジスタの値をアドレスの上位1バイトとし、アドレス「@DIV32__+0」を下位1バイトとし、そのアドレスで示される除算結果レジスタの値をAレジスタに読み出し、11行目の「LD (_EX_DPA7),A」によって、商であるAレジスタの値をアドレス「_EX_DPA7」に格納する。 Next, as shown in FIG. 116, the division waits for a certain amount of time (S2), and after a certain amount of time has elapsed, the result of the operation is set in the main RAM 500c (S3). Specifically, the "NOP" command on lines 5 to 8 of FIG. 117 consumes four cycles of time, and the "IN A, (LOW @DIV32___+0)" command on line 9 sets the value of the U register to the upper byte of the address and the address "@DIV32___+0" to the lower byte, reading the value of the division result register indicated by that address into the A register, and the "LD (_EX_DPA7), A" command on line 11 stores the quotient, or the value of the A register, in the address "_EX_DPA7".

ここで、当該コマンド例では、図117に示すように、コマンドサイズの合計は20バイトとなり、サイクル数の合計は28サイクルとなる。 Here, in this command example, as shown in FIG. 117, the total command size is 20 bytes, and the total number of cycles is 28 cycles.

以上説明したように、乗算結果÷総払出数を実行する第3の演算例と、乗算結果÷総払出数を実行する第4の演算例とを比較すると、コマンドサイズの合計およびサイクル数の合計のいずれも第4の演算例の方が小さくなる。したがって、スロットマシン400で乗算結果÷総払出数を実行する場合、図116、図117を用いて説明したように、32ビット除算器を用いて実行する方が好ましい。 As explained above, when comparing the third calculation example, which executes multiplication result ÷ total payout number, with the fourth calculation example, which executes multiplication result ÷ total payout number, the fourth calculation example has a smaller total command size and a smaller total number of cycles. Therefore, when executing multiplication result ÷ total payout number in slot machine 400, it is preferable to execute it using a 32-bit divider, as explained using Figures 116 and 117.

以上、第1の演算例~第4の演算例を挙げて、スロットマシン400における役物比率の演算態様を説明した。以下、パチンコ機におけるベース値について説明する。なお、スロットマシン400における有利区間比率、指示込役物比率、連続役物比率、役物比率、役物等状態比率については、全て小数点以下を切り捨てるとしているが、パチンコ機におけるベース値(賞球数/アウト数)は小数点以下を四捨五入する。そこで、パチンコ機においては、賞球数の乗数として「100」ではなく「200」を採用し、小数点以下が0.5以上であるか否かを整数(最下位ビット)に置き換えて判断する。したがって、ベース値は、賞球数に乗数(200)を乗じ、その後、乗数を乗じた結果(被除数)をアウト数で除算し、最下位ビット(MLB)に応じて切り上げまたは切り捨てを判断する。 Above, the first to fourth calculation examples were given to explain the calculation mode of the feature ratio in the slot machine 400. Below, the base value in the pachinko machine will be explained. Note that the advantageous zone ratio, the feature ratio with instruction, the consecutive feature ratio, the feature ratio, and the feature etc. state ratio in the slot machine 400 are all rounded down to the nearest whole number, but the base value (number of prize balls/number of outs) in the pachinko machine is rounded up to the nearest whole number. Therefore, in the pachinko machine, "200" is used as the multiplier for the number of prize balls instead of "100", and whether the decimal point is 0.5 or more is converted to an integer (least significant bit) to determine whether it is. Therefore, the base value is calculated by multiplying the number of prize balls by the multiplier (200), and then dividing the result of multiplying the multiplier (dividend) by the number of outs, and rounding up or down is determined according to the least significant bit (MLB).

ここでは、8ビットMUL命令および2の累乗数を乗じた数の繰り返し減算を用いた第5の演算例と、16ビット乗算器および32ビット除算器を用いた第6の演算例を挙げ、その有効性を比較する。 Here, we present a fifth calculation example using an 8-bit MUL instruction and repeated subtraction of a number multiplied by a power of 2, and a sixth calculation example using a 16-bit multiplier and a 32-bit divider, and compare their effectiveness.

(賞球数×乗数÷アウト数を実行する第5の演算例)
図118は、8ビットMUL命令および2の累乗数を乗じた数の繰り返し減算を用いた第5の演算例を実現するための具体的な処理を示したフローチャートであり、図119は、第5の演算例を実現するための具体的なコマンドの一例を示した図である。かかる図118の説明におけるステップSの数値は、本図の説明においてのみ用いることとする。なお、ここでは、3バイトの被除数(賞球数に乗数を乗じた演算結果)を格納しているアドレス「R_ERW_BF1」と、3バイトの除数(アウト数)を格納しているアドレス「R_ERW_BF2」とが連続して配置されているとする。
(Fifth example of calculation: Number of winning balls × multiplier ÷ number of outs)
Fig. 118 is a flow chart showing a specific process for implementing the fifth calculation example using an 8-bit MUL command and repeated subtraction of a number multiplied by a power of 2, and Fig. 119 is a diagram showing an example of a specific command for implementing the fifth calculation example. The numerical values of step S in the explanation of Fig. 118 are used only in the explanation of this figure. Here, it is assumed that an address "R_ERW_BF1" storing a 3-byte dividend (the calculation result of multiplying the number of winning balls by a multiplier) and an address "R_ERW_BF2" storing a 3-byte divisor (the number of outs) are consecutively arranged.

図118に示すように、まず、通常賞球カウンタの値をBCレジスタに読み出し(S1)、通常アウトカウンタの値をHLレジスタに読み出し(S2)、HLレジスタが0であるか否か判定され(S3)、0であれば(S3におけるYES)、ステップS23に移行する。具体的に、図119の2行目のコマンド「XOR A,A」によって、後程、除数の計算に用いられるAレジスタの値を初期化し、3行目の「LD BC,(R_ERW_TJS)」によって、アドレス「R_ERW_TJS」で示される通常賞球カウンタの値(賞球数)がBCレジスタに読み出され、4行目のコマンド「LD HL,(R_ERW_TJO」によって、アドレス「R_ERW_TJO」で示される通常アウトカウンタの値(アウト数)がHLレジスタに読み出され、5行目のコマンド「JR TZ,E_SHYMT_60」によって、HLレジスタの値が0であれば、49行目の指標「E_SHYMT_60」に移動する。 As shown in FIG. 118, first, the value of the normal prize ball counter is read into the BC register (S1), the value of the normal out counter is read into the HL register (S2), and it is determined whether the HL register is 0 (S3). If it is 0 (YES in S3), the process proceeds to step S23. Specifically, the command "XOR A, A" on line 2 of FIG. 119 initializes the value of the A register, which will be used later to calculate the divisor, the command "LD BC, (R_ERW_TJS)" on line 3 reads the value of the normal prize ball counter (number of prize balls) indicated by the address "R_ERW_TJS" into the BC register, the command "LD HL, (R_ERW_TJO)" on line 4 reads the value of the normal out counter (number of outs) indicated by the address "R_ERW_TJO" into the HL register, and the command "JR TZ, E_SHYMT_60" on line 5 moves the value of the HL register to the index "E_SHYMT_60" on line 49 if it is 0.

次に、図118に示すように、アウト数に整数(2の累乗数、ここでは128)を乗じ(S4)、その演算結果を除数バッファとしてメインRAM500cに格納する(S5)。具体的に、図119の6行目のコマンド「SRL H」によって、Hレジスタの値が右に1だけビットシフトされ、7行目のコマンド「RR L」によって、Hレジスタからのキャリアも含めLレジスタの値が右に1だけビットシフトされ、8行目のコマンド「RRA」によって、Lレジスタからのキャリアも含めAレジスタの値が右に1だけビットシフトされる。ここで、HLAレジスタという単位で数値を判断すると、HLレジスタの値に256を乗じ、その後に右に1だけビットシフトされていると見做せるので、アウト数に128(256/2)を乗じたこととなり、これが除数となる。そして、図119の9行目のコマンド「LD (R_ERW_BF2),A」によって、除数の下位バイトであるAレジスタの値をアドレス「R_ERW_BF2」に格納し、10行目のコマンド「LD (R_ERW_BF2+1),HL」によって、除数の上位2バイトであるHLレジスタの値をアドレス「R_ERW_BF2+1」に格納する。 Next, as shown in FIG. 118, the out number is multiplied by an integer (a power of 2, here 128) (S4), and the result of the calculation is stored in the main RAM 500c as a divisor buffer (S5). Specifically, the command "SRL H" on the sixth line of FIG. 119 shifts the value of the H register one bit to the right, the command "RR L" on the seventh line shifts the value of the L register, including the carrier from the H register, one bit to the right, and the command "RRA" on the eighth line shifts the value of the A register, including the carrier from the L register, one bit to the right. Here, if we judge the numerical value in units of the HLA register, we can consider the value of the HL register to be multiplied by 256 and then bit-shifted one bit to the right, so the out number is multiplied by 128 (256/2), which becomes the divisor. Then, the command "LD (R_ERW_BF2), A" on line 9 of Figure 119 stores the value of the A register, which is the lower byte of the divisor, in address "R_ERW_BF2," and the command "LD (R_ERW_BF2+1), HL" on line 10 stores the value of the HL register, which is the upper two bytes of the divisor, in address "R_ERW_BF2+1."

続いて、図118に示すように、被乗数(賞球数)の下位バイトであるCレジスタの値と乗数(200)とを乗じ(S6)、その演算結果をDEレジスタに設定する(S7)。具体的に、図119の11行目のコマンド「LD A,C」によって、Cレジスタの値をAレジスタに複製し、12行目のコマンド「MUL HL,A,200」によって、Aレジスタの値と200とを乗じた結果をHLレジスタに保持し、13行目のコマンド「EX DE,HL」によって、HLレジスタの値をDEレジスタに設定する。 Next, as shown in Fig. 118, the value of the C register, which is the lower byte of the multiplicand (number of prize balls), is multiplied by the multiplier (200) (S6), and the result of the calculation is set in the DE register (S7). Specifically, the command "LD A, C" on line 11 of Fig. 119 copies the value of the C register to the A register, the command "MUL HL, A, 200" on line 12 stores the result of multiplying the value of the A register by 200 in the HL register, and the command "EX DE, HL" on line 13 sets the value of the HL register in the DE register.

次に、図118に示すように、被乗数の上位バイトであるBレジスタの値と乗数(200)とを乗じ(S8)、その演算結果にDレジスタの値を加算して演算結果を更新し(S9)、その演算結果を被除数バッファとしてメインRAM500cに格納する(S10)。具体的に、図119の14行目のコマンド「LD A,B」によって、Bレジスタの値をAレジスタに複製し、15行目のコマンド「MUL HL,A,200」によって、Aレジスタの値と200とを乗じた結果をHLレジスタに保持し、16行目のコマンド「ADDWB HL,D」によって、乗算結果のHLレジスタに、13行目のコマンド「EX DE,HL」によって設定されたDEレジスタのうちの上位1バイト(Dレジスタの値)のみを加算し、17行目のコマンド「LD A,E」によって、13行目のコマンド「EX DE,HL」によって設定されたDEレジスタのうち下位1バイトをAレジスタに設定し、18行目のコマンド「LD (R_ERW_BF1),A」によって、被除数の下位バイトであるAレジスタの値をアドレス「R_ERW_BF1」に格納し、19行目のコマンド「LD (R_ERW_BF1+1),HL」によって、被除数の上位2バイトであるHLレジスタの値をアドレス「R_ERW_BF1+1」に格納する。 Next, as shown in FIG. 118, the value of the B register, which is the upper byte of the multiplicand, is multiplied by the multiplier (200) (S8), the value of the D register is added to the result of the calculation to update the result of the calculation (S9), and the result of the calculation is stored in the main RAM 500c as a dividend buffer (S10). Specifically, the command "LD A,B" on line 14 of FIG. 119 copies the value of the B register to the A register, the command "MUL HL,A,200" on line 15 stores the result of multiplying the value of the A register by 200 in the HL register, the command "ADDWB HL,D" on line 16 adds only the most significant byte (the value of the D register) of the DE register set by the command "EX DE,HL" on line 13 to the HL register containing the multiplication result, the command "LD A,E" on line 17 sets the least significant byte of the DE register set by the command "EX DE,HL" on line 13 in the A register, the command "LD (R_ERW_BF1),A" on line 18 stores the value of the A register, which is the least significant byte of the dividend, in the address "R_ERW_BF1", and the command "LD (R_ERW_BF1+1),HL" stores the value of the HL register, which is the upper two bytes of the dividend, in address "R_ERW_BF1+1".

続いて、図118に示すように、ループ回数を8に、商を0に初期化し(S11)、商を2倍し(S12)、被除数の上位2バイトと除数の上位2バイトを読み出し(S13)、被除数の上位2バイトが除数の上位2バイト未満であるか否か判定する(S14)。そして被除数の上位2バイトが除数の上位2バイト未満であれば(S14におけるYES)、ステップS20に移動する。具体的に、図119の20行目のコマンド「LD BC,8*256+0」によって、ループ回数を示すBレジスタに8を、商を示すCレジスタに0を設定し、22行目のコマンド「SLA C」によって、Cレジスタの値を左に1ビットシフトし(MSBには0が入る)、23行目のコマンド「LD HL,R_ERW_BF1+1」によって、被除数(賞球数×乗数の乗算結果)を格納しているアドレス「R_ERW_BF1」の値に1を加算した値をHLレジスタに読み出し、24行目のコマンド「LD DE,(HL+3)」によって、被除数を格納しているアドレス「R_ERW_BF1」の3バイト上位に位置するアドレス「R_ERW_BF2」に格納された除数の上位2バイトをDEレジスタに読み出し、25行目のコマンド「JCP C,(HL),DE,E_SHYMT_55」によって、HLレジスタで示されるアドレスの値(被除数の上位2バイト)と、DEレジスタの値(除数の上位2バイト)とが比較され、キャリーフラグが立っていれば、すなわち、被除数の上位2バイトが除数の上位2バイト未満であれば、38行目の指標「E_SHYMT_55」に移動する。 Next, as shown in Fig. 118, the loop count is initialized to 8 and the quotient to 0 (S11), the quotient is doubled (S12), the most significant 2 bytes of the dividend and the most significant 2 bytes of the divisor are read (S13), and it is determined whether the most significant 2 bytes of the dividend are less than the most significant 2 bytes of the divisor (S14). If the most significant 2 bytes of the dividend are less than the most significant 2 bytes of the divisor (YES in S14), the process moves to step S20. Specifically, the command "LD BC, 8*256+0" on line 20 of FIG. 119 sets 8 to the B register, which indicates the number of loops, and 0 to the C register, which indicates the quotient; the command "SLA C" on line 22 shifts the value of the C register one bit to the left (0 is entered in the MSB); the command "LD HL, R_ERW_BF1+1" on line 23 adds 1 to the value of the address "R_ERW_BF1" storing the dividend (the product of the number of prize balls multiplied by the multiplier) and reads the value into the HL register; the command "LD DE, (HL+3)" on line 24 reads the upper two bytes of the divisor stored in the address "R_ERW_BF2," which is three bytes higher than the address "R_ERW_BF1" storing the dividend, into the DE register; and the command "JCP "C, (HL), DE, E_SHYMT_55" compares the value of the address indicated by the HL register (the most significant two bytes of the dividend) with the value of the DE register (the most significant two bytes of the divisor), and if the carry flag is set, i.e., if the most significant two bytes of the dividend are less than the most significant two bytes of the divisor, it moves to the index "E_SHYMT_55" on line 38.

次に、図118に示すように、被除数の上位2バイトが除数の上位2バイト以上であれば(S14におけるNO)、後段の計算のため、除数の下位1バイトと被除数の下位1バイトを読み出し(S15)、ステップS14において、被除数の上位2バイトと除数の上位2バイトとが等しくないか否か、すなわち、被除数の上位2バイトが除数の上位2バイトより大きいか否か判定する(S16)。そして被除数の上位2バイトと除数の上位2バイトとが等しくなければ(S16におけるYES)、ステップS18に移動し、被除数の上位2バイトと除数の上位2バイトとが等しければ(S16におけるNO)、被除数の下位1バイトが除数の下位1バイト未満であるか否か判定する(S17)。そして被除数の下位1バイトが除数の下位1バイト未満であれば(S17におけるYES)、ステップS20に移動し、被除数の下位1バイトが除数の下位1バイト以上であれば(S17におけるNO)、ステップS18に移動する。具体的に、図119の26行目のコマンド「LD L,LOW R_ERW_BF2」によって、除数を格納しているアドレス「R_ERW_BF2」の下位1バイトをLレジスタに読み出し(なお、Hレジスタには、23行目のコマンド「LD HL,R_ERW_BF1+1」によって、既に「R_ERW_BF2」の上位1バイトが保持されている)、27行目のコマンド「LD A,(HL-3)」によって、除数を格納しているアドレス「R_ERW_BF2」の3バイト下位に位置するアドレス「R_ERW_BF1」に格納された被除数の下位1バイトをAレジスタに読み出し、28行目のコマンド「JR NZ,E_SHYMT_50」によって、25行目のコマンドの実行によってゼロフラグが立っていなければ、31行目の指標「E_SHYMT_50」に移動し、29行目のコマンド「CP A,(HL)」によって、Aレジスタの値(被除数の下位1バイト)と、HLレジスタで示されるアドレスの値(除数の下位1バイト)とが比較され、30行目のコマンド「JR C,E_SHYMT_55」によって、キャリーフラグが立っていれば、すなわち、被除数の下位1バイトが除数の下位1バイト未満であれば、38行目の指標「E_SHYMT_55」に移動する。 Next, as shown in FIG. 118, if the upper two bytes of the dividend are equal to or greater than the upper two bytes of the divisor (NO in S14), the lower byte of the divisor and the lower byte of the dividend are read for the calculation in the subsequent stage (S15), and in step S14, it is determined whether the upper two bytes of the dividend are not equal to the upper two bytes of the divisor, that is, whether the upper two bytes of the dividend are greater than the upper two bytes of the divisor (S16). If the upper two bytes of the dividend are not equal to the upper two bytes of the divisor (YES in S16), the process moves to step S18, and if the upper two bytes of the dividend are equal to the upper two bytes of the divisor (NO in S16), the process moves to step S18. If the lower byte of the dividend is less than the lower byte of the divisor (YES in S17), the process moves to step S20, and if the lower byte of the dividend is equal to or greater than the lower byte of the divisor (NO in S17), the process moves to step S18. Specifically, the command "LD L, LOW R_ERW_BF2" on line 26 of FIG. 119 reads the lowest byte of the address "R_ERW_BF2" storing the divisor into the L register (note that the highest byte of "R_ERW_BF2" has already been stored in the H register by the command "LD HL, R_ERW_BF1+1" on line 23), the command "LD A, (HL-3)" on line 27 reads the lowest byte of the dividend stored in the address "R_ERW_BF1", which is three bytes lower than the address "R_ERW_BF2" storing the divisor, into the A register, and the command "JR NZ, E_SHYMT_50" on line 28 moves to the index "E_SHYMT_50" on line 31 if the zero flag has not been set by the execution of the command on line 25, and the command "CP A, (HL)" compares the value of the A register (the lowest byte of the dividend) with the value of the address indicated by the HL register (the lowest byte of the divisor), and the command "JR C, E_SHYMT_55" on line 30 moves to the index "E_SHYMT_55" on line 38 if the carry flag is set, i.e., if the lowest byte of the dividend is less than the lowest byte of the divisor.

続いて、図118に示すように、被除数が除数以上であれば、被除数から除数を減算して、その減算結果を新たな被除数として更新し(S18)、商に1を加算する(S19)。具体的に、図119の32行目のコマンド「SUB A,(HL)」によって、被除数の下位1バイトが格納されたAレジスタの値から、HLレジスタで示される除数の下位1バイトの値を減算し、33行目のコマンド「LD (HL-3),A」によって、HLレジスタで示される除数を格納しているアドレスの3バイト下位に位置する被除数を示すアドレスに、減算結果である更新された被除数の下位1バイトを格納し、34行目のコマンド「LD HL,(HL-2)」によって、HLレジスタで示される除数を格納しているアドレスの2バイト下位に位置する被除数の上位2バイトを示すアドレスをHLレジスタに読み出し、35行目のコマンド「SBC HL,DE」によって、被除数の上位2バイトが格納されたHLレジスタの値から、除数の上位2バイトが格納されたDEレジスタの値を減算し、36行目のコマンド「LD (R_ERW_BF1+1),HL」によって、アドレス「R_ERW_BF1」が示す被除数の上位2バイトに、減算結果である更新された被除数の上位2バイトを格納し、37行目のコマンド「INC C」によって、商を示すCレジスタの値を1だけインクリメントする。 Next, as shown in FIG. 118, if the dividend is greater than or equal to the divisor, the divisor is subtracted from the dividend, the subtraction result is updated as the new dividend (S18), and 1 is added to the quotient (S19). Specifically, the command "SUB A, (HL)" on line 32 of FIG. 119 subtracts the value of the lowest byte of the divisor indicated by the HL register from the value of the A register in which the lowest byte of the dividend is stored, the command "LD (HL-3), A" on line 33 stores the lowest byte of the updated dividend, which is the result of the subtraction, in the address indicating the dividend located three bytes below the address in which the divisor indicated by the HL register is stored, the command "LD HL, (HL-2)" on line 34 reads into the HL register the address indicating the highest 2 bytes of the dividend located two bytes below the address in which the divisor indicated by the HL register is stored, the command "SBC HL, DE" on line 35 subtracts the value of the DE register in which the highest 2 bytes of the divisor are stored from the value of the HL register in which the highest 2 bytes of the dividend are stored, and the command "LD (R_ERW_BF1+1),HL" stores the upper two bytes of the updated dividend, which is the result of the subtraction, in the upper two bytes of the dividend indicated by the address "R_ERW_BF1", and the command "INC C" on line 37 increments the value of the C register, which indicates the quotient, by 1.

次に、図118に示すように、除数を2で除算(右にビットシフト)し、新たな除数として更新し(S20)、ループ回数を減算し、そのループ回数が0ではないか否か判定し(S21)、0でなければ(S21におけるYES)、ステップS12からの処理を繰り返し、0であれば(S21におけるNO)、四捨五入を実行し(S22)、ベース値をメインRAM500cに設定して(S23)、当該処理を終了する。具体的に、図119の39行目のコマンド「LD HL,R_ERW_BF2+2」によって、除数の上位1バイトを示すアドレス「R_ERW_BF2+2」をHLレジスタに読み出し、40行目のコマンド「SRL (HL)」によってHLレジスタで示されるアドレスの値(除数の3バイト目)が右に1だけビットシフトされ、41行目のコマンド「DEC HL」によって、HLレジスタの値が1だけデクリメントされ、42行目のコマンド「RR (HL)」によってHLレジスタで示されるアドレスの値(除数の2バイト目)が右に1だけビットシフトされ、43行目のコマンド「DEC HL」によって、HLレジスタの値が1だけデクリメントされ、44行目のコマンド「RR (HL)」によってHLレジスタで示されるアドレスの値(除数の1バイト目)が右に1だけビットシフトされ、45行目のコマンド「DJNZ E_SHYMT_45」によって、ループ回数を示すBレジスタの値が1だけデクリメントされ、その値が0でなければ、21行目の指標「E_SHYMT_45」へ移動する。一方、ループ回数が0となると、図119の46行目のコマンド「LD A,C」によって、商を示すCレジスタの値がAレジスタに複製され、47行目のコマンド「SRL A」によってAレジスタで示されるアドレスの値が右に1だけビットシフトされ、48行目のコマンド「ADC A,0」によって、47行目のコマンド「SRL A」によってキャリーフラグが立っていれば、すなわち、小数点以下が0.5以上であれば、Aレジスタに1が加算され、50行目のコマンド「LD HL,R_ERW_BAS」によって、ベース値を示すアドレス「R_ERW_BAS」がHLレジスタに設定され、51行目のコマンド「LD (HL),A」によって、ベース値を示すAレジスタの値がアドレス「R_ERW_BAS」に格納される。 Next, as shown in FIG. 118, the divisor is divided by 2 (bit shift to the right) and updated as a new divisor (S20), the loop count is subtracted, and it is determined whether the loop count is not 0 (S21). If it is not 0 (YES in S21), the processing from step S12 is repeated; if it is 0 (NO in S21), rounding is performed (S22), the base value is set in the main RAM 500c (S23), and the processing ends. Specifically, the command "LD HL, R_ERW_BF2+2" on line 39 of FIG. 119 reads the address "R_ERW_BF2+2" indicating the most significant byte of the divisor into the HL register, the command "SRL (HL)" on line 40 bit-shifts the value of the address indicated by the HL register (the third byte of the divisor) to the right by one bit, the command "DEC HL" on line 41 decrements the value of the HL register by one, the command "RR (HL)" on line 42 bit-shifts the value of the address indicated by the HL register (the second byte of the divisor) to the right by one bit, the command "DEC HL" on line 43 decrements the value of the HL register by one, the command "RR (HL)" on line 44 bit-shifts the value of the address indicated by the HL register (the first byte of the divisor) to the right by one bit, and the command "DJNZ" on line 45 The value of the B register, which indicates the number of loops, is decremented by 1 by "E_SHYMT_45", and if the value is not 0, it moves to the index "E_SHYMT_45" on the 21st line. On the other hand, when the loop count becomes 0, the command "LD A, C" on line 46 of FIG. 119 copies the value of the C register indicating the quotient to the A register, the command "SRL A" on line 47 bit-shifts the value of the address indicated by the A register by 1, the command "ADC A, 0" on line 48 adds 1 to the A register if the carry flag is set by the command "SRL A" on line 47, that is, if the decimal point is 0.5 or more, the command "LD HL, R_ERW_BAS" on line 50 sets the address "R_ERW_BAS" indicating the base value in the HL register, and the command "LD (HL), A" on line 51 stores the value of the A register indicating the base value in the address "R_ERW_BAS".

かかる第5の演算例により、加算、減算、乗算といった簡易な演算のみで、また、2の累乗数を乗じた数の繰り返し減算を用いてベース値を導出することが可能となる。 This fifth calculation example makes it possible to derive a base value using only simple calculations such as addition, subtraction, and multiplication, and by repeatedly subtracting a number multiplied by a power of 2.

ここで、当該コマンド例では、図119に示すように、コマンドサイズの合計は97バイトとなり、サイクル数の単純合計は136/131サイクルとなる。また、実際のサイクル数は、以下のようになる。すなわち、当該処理では、指標「E_SHYMT_45」の次のコマンド(22行目)から45行目のコマンド「DJNZ E_SHYMT_45」までを8回ループすることとなる。このとき、8回全てのループにおいて、25行目のコマンド「JCP C,(HL),DE,E_SHYMT_55」で指標「E_SHYMT_55」に移動した場合、26行目~37行目のコマンドを実行しないので、サイクル数は最小の367(54+38(最初の7ループ)×7+37(8回目のループ)+10)サイクルとなる。一方、全ループにおいて、25行目のコマンド「JCP C,(HL),DE,E_SHYMT_55」で指標「E_SHYMT_55」に移動しなかった場合、サイクル数は最大となる。ただし、取り得る数値の関係で、1、2回目のループでは、25行目のコマンド「JCP C,(HL),DE,E_SHYMT_55」で移動せず、28行目のコマンド「JR NZ,E_SHYMT_50」で移動し、3~8回目のループでは、25行目のコマンド「JCP C,(HL),DE,E_SHYMT_55」、28行目のコマンド「JR NZ,E_SHYMT_50」、30行目のコマンド「JR C,E_SHYMT_55」のいずれにおいても移動しない場合が最大となることを勘案すると、サイクル数の最大は601(54+65(最初の2ループ)×2+68(その後の5ループ)×5+67(8回目のループ)+10)サイクルとなる。したがって、サイクル数の実質的な合計は、367~601サイクルの範囲となる。 In this command example, as shown in FIG. 119, the total command size is 97 bytes, and the simple total number of cycles is 136/131 cycles. The actual number of cycles is as follows. That is, in this process, eight loops are performed from the next command (line 22) after the index "E_SHYMT_45" to the command "DJNZ E_SHYMT_45" on line 45. In this case, if the command "JCP C, (HL), DE, E_SHYMT_55" on line 25 is used to move to the index "E_SHYMT_55" in all eight loops, the commands on lines 26 to 37 are not executed, so the number of cycles is the minimum of 367 (54 + 38 (first 7 loops) x 7 + 37 (8th loop) + 10). On the other hand, if the command "JCP C, (HL), DE, E_SHYMT_55" on the 25th line does not move to the index "E_SHYMT_55" in all loops, the number of cycles is maximum. However, due to the possible values, in the first and second loops, the command "JCP C, (HL), DE, E_SHYMT_55" on line 25 does not move, but the command "JR NZ, E_SHYMT_50" on line 28 does, and in the third to eighth loops, the command "JCP C, (HL), DE, E_SHYMT_55" on line 25, the command "JR NZ, E_SHYMT_50" on line 28, and the command "JR C, E_SHYMT_55" on line 30 do not move at most. Taking this into consideration, the maximum number of cycles is 601 (54 + 65 (first two loops) x 2 + 68 (subsequent five loops) x 5 + 67 (eighth loop) + 10). Therefore, the actual total number of cycles is in the range of 367 to 601 cycles.

(賞球数×乗数÷アウト数を実行する第6の演算例)
図120は、16ビット乗算器および32ビット除算器を用いた第6の演算例を実現するための具体的な処理を示したフローチャートであり、図121は、第6の演算例を実現するための具体的なコマンドの一例を示した図である。かかる図120の説明におけるステップSの数値は、本図の説明においてのみ用いることとする。
(Sixth example of calculation: Number of winning balls × multiplier ÷ number of outs)
Fig. 120 is a flow chart showing a specific process for implementing the sixth operation example using a 16-bit multiplier and a 32-bit divider, and Fig. 121 is a diagram showing an example of a specific command for implementing the sixth operation example. The numerical values of step S in the explanation of Fig. 120 are used only in the explanation of this figure.

図120に示すように、まず、賞球数を被乗数レジスタに設定し(S1)、乗数「200」を乗数レジスタに設定する(S2)。具体的に、図121の1行目のコマンド「LD HL,(R_ERW_TJS)」によって、アドレス「R_ERW_TJS」で示される通常賞球カウンタの値(賞球数)がHLレジスタに読み出され、2行目のコマンド「OUT (LOW @MULA16_)によって、Uレジスタの値をアドレスの上位1バイトとし、アドレス「@MULA16_」を下位1バイトとし、そのアドレスで示される乗数設定レジスタにHLレジスタの値を出力し、3行目のコマンド「EX DE,HL」によって、HLレジスタの値をDEレジスタに複製し、4行目のコマンド「LD A,200」によって、Aレジスタに乗数「200」を設定し、5行目のコマンド「OUT (LOW @MULB16_),A」によって、Uレジスタの値をアドレスの上位1バイトとし、アドレス「@MULB16_」を下位1バイトとし、そのアドレスで示される乗数設定レジスタにAレジスタの値を出力する。なお、乗数設定レジスタ「@MULB16_」の上位1バイトにはデフォルト値として「00H」が設定されている。 As shown in FIG. 120, first, the number of prize balls is set in the multiplicand register (S1), and the multiplier "200" is set in the multiplier register (S2). Specifically, the command "LD HL, (R_ERW_TJS)" on the first line of FIG. 121 reads the value of the normal prize ball counter (number of prize balls) indicated by the address "R_ERW_TJS" into the HL register, the command "OUT (LOW @MULA16_)" on the second line makes the value of the U register the upper byte of the address and the address "@MULA16_" the lower byte, and outputs the value of the HL register to the multiplier setting register indicated by that address, the command "EX DE,HL" on the third line copies the value of the HL register to the DE register, the command "LD A, 200" on the fourth line sets the multiplier "200" in the A register, and the command "OUT (LOW By "@MULB16_), A", the value of the U register is set as the upper byte of the address, and the address "@MULB16_" is set as the lower byte, and the value of the A register is output to the multiplier setting register indicated by that address. Note that the upper byte of the multiplier setting register "@MULB16_" is set to "00H" as the default value.

次に、図120に示すように、通常賞球カウンタが0である場合を想定し、ベース値の初期値として0を設定し(S3)、アウト数が0であるか否か判定され(S4)、0であれば(S4におけるYES)、乗数を乗じても結果が変わらないので(0なので)、ステップS13に移動し、0でなければ(S4におけるNO)、ベース値を100に設定し(S5)、アウト数が賞球数未満であるか否か判定し(S6)、アウト数が賞球数未満であれば(S6におけるYES)、ステップS13に移動する。具体的に、図121の6行目のコマンド「XOR A,A」によってベース値を示すAレジスタの値を0に設定し、7行目のコマンド「LD HL,(R_ERW_TJO)」によって、アドレス「R_ERW_TJO」で示される通常アウトカウンタの値(アウト数)がHLレジスタに読み出され、8行目のコマンド「JR TZ,E_SHYMT_60」によって、HLレジスタの値が0であれば、23行目の指標「E_SHYMT_60」に移動し、9行目のコマンド「LD A,100」によって、ベース値を示すAレジスタに初期値として100を設定し、10行目のコマンド「JCP C,HL,DE,E_SHYMT_60」によって、HLレジスタの値(アウト数)と、DEレジスタの値(賞球数)とが比較され、キャリーフラグが立っていれば、すなわち、アウト数が賞球数未満であれば、23行目の指標「E_SHYMT_60」に移動する。 Next, as shown in FIG. 120, assuming that the prize ball counter is normally 0, the initial value of the base value is set to 0 (S3), and it is determined whether the number of outs is 0 or not (S4). If it is 0 (YES in S4), the result will not change even if it is multiplied by the multiplier (it is 0), so it moves to step S13; if it is not 0 (NO in S4), the base value is set to 100 (S5), and it is determined whether the number of outs is less than the number of prize balls (S6), and if the number of outs is less than the number of prize balls (YES in S6), it moves to step S13. Specifically, the command "XOR A, A" on line 6 of FIG. 121 sets the value of the A register, which indicates the base value, to 0, the command "LD HL, (R_ERW_TJO)" on line 7 reads the value of the normal out counter (number of outs) indicated by the address "R_ERW_TJO" into the HL register, the command "JR TZ, E_SHYMT_60" on line 8 moves the value of the HL register to the index "E_SHYMT_60" on line 23 if it is 0, the command "LD A, 100" on line 9 sets the A register, which indicates the base value, to an initial value of 100, and the command "JCP "C,HL,DE,E_SHYMT_60" compares the value of the HL register (number of outs) with the value of the DE register (number of winning balls), and if the carry flag is set, i.e., if the number of outs is less than the number of winning balls, it moves to the index "E_SHYMT_60" on the 23rd line.

続いて、図120に示すように、アウト数を除数設定レジスタに設定し(S7)、16ビット乗算器による乗算結果をHLAレジスタ(HLレジスタおよびAレジスタ)に読み出し(S8)、それを被除数設定レジスタに設定する(S9)。具体的に、図121の11行目のコマンド「OUT (LOW @DIVB32_),HL」によって、Uレジスタの値をアドレスの上位1バイトとし、アドレス「@DIVB32_」を下位1バイトとし、そのアドレスで示される除数設定レジスタ「@DIVB32_」にHLレジスタの値を出力し、12行目のコマンド「IN A,(LOW @MUL32__」によって、Uレジスタの値をアドレスの上位1バイトとし、アドレス「@MULB32__」を下位1バイトとし、そのアドレスで示される乗算結果レジスタの1バイト値をAレジスタに読み出し、13行目のコマンド「IN HL,(LOW @MUL32__+1」によって、Uレジスタの値をアドレスの上位1バイトとし、アドレス「@MULB32__+1」を下位1バイトとし、そのアドレスで示される乗算結果レジスタの2バイト値をHLレジスタに読み出し、14行目のコマンド「OUT (LOW @DIVA32_+0),A」によって、Uレジスタの値をアドレスの上位1バイトとし、アドレス「@DIVA32_」を下位1バイトとし、そのアドレスで示される被除数設定レジスタ「@DIVA32_」にAレジスタの値を出力し、15行目のコマンド「OUT (LOW @DIVA32_+1),HL」によって、Uレジスタの値をアドレスの上位1バイトとし、アドレス「@DIVA32_+1」を下位1バイトとし、そのアドレスで示される被除数設定レジスタ「@DIVA32_+1」にHLレジスタの値を出力する。こうして、16ビット乗算器を動作させ、乗算結果レジスタに乗算結果が格納される。 Next, as shown in FIG. 120, the out number is set in the divisor setting register (S7), the multiplication result by the 16-bit multiplier is read into the HLA register (HL register and A register) (S8), and it is set in the dividend setting register (S9). Specifically, the command "OUT (LOW @DIVB32_), HL" on line 11 of FIG. 121 sets the value of the U register to the most significant byte of the address, the address "@DIVB32_" to the least significant byte, and outputs the value of the HL register to the divisor setting register "@DIVB32_" indicated by that address. The command "IN A, (LOW @MUL32__" on line 12 sets the value of the U register to the most significant byte of the address, the address "@MULB32__" to the least significant byte, and reads the 1-byte value of the multiplication result register indicated by that address into the A register. The command "IN HL, (LOW @MUL32__+1" on line 13 sets the value of the U register to the most significant byte of the address, the address "@MULB32__+1" to the least significant byte, and reads the 2-byte value of the multiplication result register indicated by that address into the HL register. The command "OUT The command "OUT (LOW @DIVA32_+0), A" sets the value of the U register as the most significant byte of the address, the address "@DIVA32_" as the least significant byte, and outputs the value of the A register to the dividend setting register "@DIVA32_" indicated by that address, and the command on line 15, "OUT (LOW @DIVA32_+1), HL" sets the value of the U register as the most significant byte of the address, the address "@DIVA32_+1" as the least significant byte, and outputs the value of the HL register to the dividend setting register "@DIVA32_+1" indicated by that address. In this way, the 16-bit multiplier is operated and the multiplication result is stored in the multiplication result register.

次に、図120に示すように、除算の時間待ちを行い(S10)、所定時間経過後、演算結果をAレジスタに読み出し(S11)、四捨五入を実行し(S12)、ベース値をメインRAM500cに設定して(S13)、当該処理を終了する。具体的に、図121の16~19行目のコマンド「NOP」によって4サイクルの時間を消費させ、20行目のコマンド「IN A,(LOW @DIV32__+0)によって、除算器から演算結果をAレジスタに読み出し、21行目のコマンド「SRL A」によってAレジスタで示されるアドレスの値が右に1だけビットシフトされ、22行目のコマンド「ADC A,0」によって、21行目のコマンド「SRL A」によってキャリーフラグが立っていれば、すなわち、小数点以下が0.5以上であれば、Aレジスタに1が加算され、24行目のコマンド「LD HL,R_ERW_BAS」によって、ベース値を示すアドレス「R_ERW_BAS」がHLレジスタに設定され、25行目のコマンド「LD (HL),A」によって、ベース値を示すAレジスタの値がアドレス「R_ERW_BAS」に格納される。 Next, as shown in FIG. 120, the division is waited for (S10), and after a predetermined time has elapsed, the calculation result is read into the A register (S11), rounding is performed (S12), the base value is set in the main RAM 500c (S13), and the process is terminated. Specifically, the "NOP" command on lines 16 to 19 of FIG. 121 consumes four cycles of time, the "IN A, (LOW @DIV32___+0)" command on line 20 reads the result of the calculation from the divider into the A register, the "SRL A" command on line 21 bit-shifts the value of the address indicated by the A register by one to the right, the "ADC A,0" command on line 22 adds 1 to the A register if the carry flag is set by the "SRL A" command on line 21, i.e., if the decimal point is 0.5 or more, the "LD HL,R_ERW_BAS" command on line 24 sets the address "R_ERW_BAS" indicating the base value in the HL register, and the "LD (HL),A" command on line 25 stores the value of the A register indicating the base value in the address "R_ERW_BAS".

ここで、当該コマンド例では、図121に示すように、コマンドサイズの合計は49バイトとなり、サイクル数の単純合計は68/66サイクルとなる。 Here, in this command example, as shown in FIG. 121, the total command size is 49 bytes, and the simple total number of cycles is 68/66 cycles.

以上説明したように、ベース値を導出する第5の演算例と、ベース値を導出する第6の演算例とを比較すると、コマンドサイズの合計およびサイクル数の単純合計のいずれも、16ビット乗算器および32ビット除算器を用いた第6の演算例の方が小さくなる。したがって、パチンコ機でベース値を実行する場合、図120、図121を用いて説明したように、16ビット乗算器および32ビット除算器を用いて実行する方が好ましい。 As explained above, when comparing the fifth calculation example for deriving a base value with the sixth calculation example for deriving a base value, both the total command size and the simple total number of cycles are smaller in the sixth calculation example using a 16-bit multiplier and a 32-bit divider. Therefore, when calculating the base value in a pachinko machine, it is preferable to use a 16-bit multiplier and a 32-bit divider, as explained using Figures 120 and 121.

以上、説明したように、本実施形態によると、処理負荷の増大を抑えることで、タイマ割込みの禁止区間を短縮化することができ、遊技情報を適切に得つつ、遊技機としての動作を安定化することが可能となる。 As explained above, according to this embodiment, by suppressing the increase in processing load, it is possible to shorten the prohibited period of timer interrupts, and it is possible to stabilize the operation of the gaming machine while properly obtaining gaming information.

なお、上述した実施形態においては、第4の演算例や第6の演算例において、32ビット除算器による除算の時間待ちに1サイクルの時間を消費する「NOP」を4回連続して利用している。しかし、かかる場合に限らず、4サイクルを確保しさえすれば、他のコマンドでもよい。例えば、コマンドサイズ1バイトで2サイクルのコマンドを2回連続して利用するか、コマンドサイズ1バイトで4サイクルのコマンドや、コマンドサイズ2バイトで4サイクルのコマンドを利用するとしてもよい。こうして、コマンドサイズを削減することができる。 In the above-described embodiment, in the fourth and sixth calculation examples, "NOP", which consumes one cycle of time while waiting for division by a 32-bit divider, is used four times in succession. However, this is not limited to the above case, and other commands may be used as long as four cycles are secured. For example, a two-cycle command with a command size of one byte may be used two times in succession, or a four-cycle command with a command size of one byte, or a four-cycle command with a command size of two bytes may be used. In this way, the command size can be reduced.

また、上述した実施形態においては、役物払出数×乗数を実行する演算例として8ビットMUL命令のみを用いた第1の演算例と、16ビット乗算器を用いた第2の演算例を挙げ、また、乗算結果÷総払出数を実行する演算例として2の累乗数を乗じた数の繰り返し減算を用いた第3の演算例と、32ビット除算器を用いた第4の演算例を挙げた。上述した実施形態においては、役物払出数×乗数を行った後、その乗算結果を用いて乗算結果÷総払出数を実行するので、第1の演算例または第2の演算例と、第3の演算例または第4の演算例とを組み合わせて演算することになる。かかる演算例の組み合わせは任意に設定できる。例えば、第1の演算例と第3の演算例との組み合わせ、第1の演算例と第4の演算例との組み合わせ、第2の演算例と第3の演算例との組み合わせ、第2の演算例と第4の演算例との組み合わせを採用することができる。また、第5の演算例および第6の演算例は、いずれも、役物払出数×乗数と、乗算結果÷総払出数とに分けることができ、かかる演算例の組み合わせは任意に設定できる。例えば、上述した第5の演算例の役物払出数×乗数と、第5の演算例の乗算結果÷総払出数との組み合わせ、第6の演算例の役物払出数×乗数と、第6の演算例の乗算結果÷総払出数との組み合わせに加え、第5の演算例の役物払出数×乗数と、第6の演算例の乗算結果÷総払出数との組み合わせ、第6の演算例の役物払出数×乗数と、第5の演算例の乗算結果÷総払出数との組み合わせを採用することができる。 In the above-mentioned embodiment, the first calculation example using only an 8-bit MUL command and the second calculation example using a 16-bit multiplier are given as calculation examples for executing the number of payouts of the reel × the multiplier, and the third calculation example using repeated subtraction of a number multiplied by a power of 2 and the fourth calculation example using a 32-bit divider are given as calculation examples for executing the multiplication result ÷ total payout. In the above-mentioned embodiment, after performing the number of payouts of the reel × the multiplier, the multiplication result ÷ total payout is executed using the multiplication result, so that the first or second calculation example is combined with the third or fourth calculation example to perform the calculation. The combination of such calculation examples can be set arbitrarily. For example, the combination of the first and third calculation examples, the combination of the first and fourth calculation examples, the combination of the second and third calculation examples, and the combination of the second and fourth calculation examples can be adopted. In addition, both the fifth and sixth calculation examples can be divided into the number of payouts of the reel × multiplier and the multiplication result ÷ total payouts, and the combination of such calculation examples can be set arbitrarily. For example, in addition to the combination of the number of payouts of the reel × multiplier of the fifth calculation example and the multiplication result ÷ total payouts of the fifth calculation example, and the combination of the number of payouts of the reel × multiplier of the sixth calculation example and the multiplication result ÷ total payouts of the sixth calculation example, the combination of the number of payouts of the reel × multiplier of the fifth calculation example and the multiplication result ÷ total payouts of the sixth calculation example, and the combination of the number of payouts of the reel × multiplier of the sixth calculation example and the multiplication result ÷ total payouts of the fifth calculation example can be adopted.

また、上述した実施形態においては、スロットマシン400の役物比率を例に挙げて、様々な演算(第1の演算例~第4の演算例)を実行したが、かかる場合に限らず、スロットマシン400の各比率(有利区間比率、指示込役物比率、6000遊技の連続役物比率、6000遊技の役物比率、総累計の連続役物比率、総累計の役物比率、役物等状態比率)に適用できるのは言うまでもない。また、スロットマシン400に限らず、第5の演算例や第6の演算例を用いて説明したように、パチンコ機のベース値にも適用可能である。 In the above embodiment, various calculations (first to fourth calculation examples) were performed using the role ratio of the slot machine 400 as an example, but it goes without saying that the present invention can be applied to other ratios of the slot machine 400 (advantageous zone ratio, role ratio with instruction, consecutive role ratio for 6000 plays, role ratio for 6000 plays, consecutive role ratio for total cumulative, role ratio for total cumulative, role etc. state ratio). In addition, the present invention can be applied not only to the slot machine 400 but also to the base value of a pachinko machine, as explained using the fifth and sixth calculation examples.

<モジュールおよびコマンドの説明>
以下、上述した各処理(モジュール)について、それを実現するための具体的な命令コード(コマンド群)を、モジュール内で主として用いられるコマンド単位で説明する。
<Module and command description>
Hereinafter, for each of the above-mentioned processes (modules), specific instruction codes (command groups) for implementing the processes will be explained in units of commands that are primarily used within the modules.

<コマンド「ADDALD」>
BYTESELモジュールは、バイトデータ選択処理、すなわち、選択アドレスをオフセットさせ、そのオフセットされたアドレスに格納された1バイト値を読み出すための汎用モジュールである。汎用モジュールは、プログラムを実行する上で用いられる同一の処理をサブルーチン化したもので、特に他のモジュールから呼び出される頻度が高いモジュールを示す。汎用モジュールは、図5(または図102)で示したメモリマップ上の最も低いアドレス0000H近傍に配置されることが多い。これは、呼び出される頻度の高い汎用モジュールを0000H近傍に配置することで、呼び出しに用いられるコマンド「CALL」のみならず、他のコマンド「RST」を利用して呼び出せるからである。なお、ここでは、BYTESELモジュールをメモリマップ上の0008Hに配置する例を挙げて説明する。
<Command "ADDALD">
The BYTESEL module is a general-purpose module for byte data selection processing, i.e., offsetting the selected address and reading out a 1-byte value stored at the offset address. A general-purpose module is a subroutine of the same processing used in executing a program, and is a module that is frequently called by other modules. General-purpose modules are often placed near the lowest address 0000H on the memory map shown in FIG. 5 (or FIG. 102). This is because by placing a general-purpose module that is frequently called near 0000H, it can be called using not only the command "CALL" used for calling, but also another command "RST". Here, an example is given of placing the BYTESEL module at 0008H on the memory map.

ここで、コマンド「RST」は、メモリマップのうち0000H近傍の低い数値のアドレスであり、8バイトずつ離れた複数のアドレス(0008H、0010H、0018H、0020H、0028H、0030H、0038H、0040H)のいずれかを呼び出すことができるコマンドである。コマンド「RST」は、呼び出しに用いられる通常のコマンド「CALL」と実行サイクルは「4」で等しいが、通常のコマンド「CALL」のコマンドサイズが「3」であるのに対し、コマンド「RST」のコマンドサイズは「1」である。したがって、コマンド「RST」を用いることでプログラムの短縮化を図ることができる。 Here, the command "RST" is a command that can call one of multiple addresses (0008H, 0010H, 0018H, 0020H, 0028H, 0030H, 0038H, 0040H) that are low-numbered addresses near 0000H in the memory map and are spaced 8 bytes apart. The command "RST" has the same execution cycle of "4" as the normal command "CALL" used for calling, but the command size of the normal command "CALL" is "3", while the command size of the command "RST" is "1". Therefore, using the command "RST" can shorten the length of a program.

メインCPU300aは、メインROM300bからプログラムを読み出し、読み出したプログラムを遂行し、任意の処理において、サブルーチンとしてBYTESELモジュールを呼び出し、BYTESELモジュールを遂行する。BYTESELモジュールでは、選択アドレスを所定値だけオフセットさせ、オフセットされたアドレスに格納された1バイト値を保持する。こうして、オフセットに応じた値を設定することができる。 The main CPU 300a reads a program from the main ROM 300b, executes the read program, and in any process, calls the BYTESEL module as a subroutine and executes the BYTESEL module. The BYTESEL module offsets the selected address by a specified value and holds the one-byte value stored at the offset address. In this way, a value according to the offset can be set.

図122は、BYTESELモジュールの具体的な処理を示したフローチャートである。ここでは、任意の処理として、図26のS400-31で示したLED表示設定処理を実行するLED_PRCモジュールの一部を挙げて説明する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。また、当該BYTESELモジュールの説明中、第1レジスタはHLレジスタであり、第2レジスタはAレジスタである。 Figure 122 is a flow chart showing the specific processing of the BYTESEL module. Here, as an optional process, a part of the LED_PRC module that executes the LED display setting process shown in S400-31 of Figure 26 will be explained. The numerical values of step S in this figure will be used only in the explanation of this figure. Also, in the explanation of this BYTESEL module, the first register is the HL register and the second register is the A register.

メインCPU300aは、図122(a)のように、任意の処理において、オフセットをAレジスタに設定し(S1)、読み出し対象となるアドレス群の先頭アドレスをHLレジスタに設定する(S2)。そして、サブルーチンとしてBYTESELモジュールを呼び出す(S3)。 As shown in FIG. 122(a), in any process, the main CPU 300a sets an offset in the A register (S1), and sets the first address of the address group to be read in the HL register (S2). Then, it calls the BYTESEL module as a subroutine (S3).

メインCPU300aは、図122(b)のように、BYTESELモジュールにおいて、HLレジスタの値にAレジスタの値を加算してHLレジスタを更新するとともに、HLレジスタで示されるアドレスに格納された1バイト値をAレジスタに読み出す(S4)。続いて、メインCPU300aは、Aレジスタの値が0(ゼロ)か否かに応じて、ゼロフラグ(第1ゼロフラグ)を設定する(S5)。そして、当該BYTESELモジュールを終了して1段上のルーチンに戻る(S6)。 As shown in FIG. 122(b), in the BYTESEL module, the main CPU 300a adds the value of the A register to the value of the HL register to update the HL register, and reads the one-byte value stored in the address indicated by the HL register into the A register (S4). Next, the main CPU 300a sets a zero flag (first zero flag) depending on whether the value of the A register is 0 (zero) or not (S5). Then, the BYTESEL module is terminated and the process returns to the routine one level above (S6).

図123、図124は、BYTESELモジュールを実現するためのコマンドの一例を説明するための説明図である。このうち、図123(a)は、BYTESELモジュールを呼び出す任意の処理のコマンド群を示し、図123(b)は、BYTESELモジュールのコマンド群を示し、図123(c)は、メインROM300bのプログラムデータにおける1バイトデータ群の配置を示す。図122で示したフローチャートは、例えば、図123に示したプログラムによって実現される。 Figures 123 and 124 are explanatory diagrams for explaining an example of commands for implementing the BYTESEL module. Of these, Figure 123(a) shows a group of commands for an arbitrary process that calls the BYTESEL module, Figure 123(b) shows a group of commands for the BYTESEL module, and Figure 123(c) shows the arrangement of a group of 1-byte data in the program data of main ROM 300b. The flowchart shown in Figure 122 is implemented, for example, by the program shown in Figure 123.

図123(a)の1行目のコマンド「LDQ A,(LOW R_TZ1_DSP)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_TZ1_DSP」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(特別図柄1表示図柄カウンタのカウンタ値)をAレジスタに読み出す。かかる1行目のコマンドが、図122(a)のステップS1に対応する。2行目のコマンド「LD HL,D_DSP_TZ」によって、読み出し元となる特別図柄表示用LED出力データテーブルのデータ群の先頭アドレス「D_DSP_TZ」をHLレジスタに設定する。かかる2行目のコマンドが、図122(a)のステップS2に対応する。そして、3行目のコマンド「RST BYTESEL」によって、サブルーチンとしてBYTESELモジュールが呼び出される。かかる3行目のコマンドが、図122(a)のステップS3に対応する。 The command "LDQ A, (LOW R_TZ1_DSP)" on the first line of FIG. 123(a) sets the value of the Q register to the upper byte of the address, the value of the lower byte of the address "R_TZ1_DSP" to the lower byte of the address, and reads the value stored at that address (counter value of the special symbol 1 display symbol counter) to the A register. This command on the first line corresponds to step S1 in FIG. 122(a). The command "LD HL, D_DSP_TZ" on the second line sets the top address "D_DSP_TZ" of the data group of the special symbol display LED output data table from which the data is read, in the HL register. This command on the second line corresponds to step S2 in FIG. 122(a). Then, the command "RST BYTESEL" on the third line calls the BYTESEL module as a subroutine. The command on the third line corresponds to step S3 in Figure 122 (a).

図123(b)の1行目の指標「BYTESEL:」は、当該BYTESELモジュールの先頭アドレスを示す。2行目のコマンド「ADDWB HL,A」によって、HLレジスタの値にAレジスタの値が加算され、HLレジスタの値が更新される。そして、3行目のコマンド「LD A,(HL)」によって、HLレジスタで示されるアドレスに格納された1バイト値がAレジスタに読み出される。かかる2、3行目のコマンドが、図122(b)のステップS4に対応する。4行目のコマンド「OR A,A」によって、Aレジスタの値とAレジスタの値との論理和が計算される。かかるコマンド「OR A,A」では、Aレジスタの値同士の論理和なので、Aレジスタの値は変化しない。一方、論理和によって、ゼロフラグ(第1ゼロフラグおよび第2ゼロフラグ)を変化させることができる。すなわち、かかるBYTESELモジュールでは、読み出されたAレジスタの値がゼロであるか否かをゼロフラグによって判定することが可能となる。かかる4行目のコマンドが、図122(b)のステップS5に対応する。そして、5行目のコマンド「RET」によって、1段上のルーチンに戻る。かかる5行目のコマンドが、図122(b)のステップS6に対応する。 The index "BYTESEL:" on the first line of FIG. 123(b) indicates the starting address of the BYTESEL module. The command "ADDWB HL,A" on the second line adds the value of the A register to the value of the HL register, updating the value of the HL register. Then, the command "LD A,(HL)" on the third line reads one byte value stored at the address indicated by the HL register into the A register. These commands on the second and third lines correspond to step S4 in FIG. 122(b). The command "OR A,A" on the fourth line calculates the logical sum of the value of the A register and the value of the A register. Since this command "OR A,A" is the logical sum of the values of the A register, the value of the A register does not change. On the other hand, the zero flag (first zero flag and second zero flag) can be changed by the logical sum. That is, in this BYTESEL module, it is possible to determine whether the value of the A register that has been read is zero or not by the zero flag. The command on line 4 corresponds to step S5 in FIG. 122(b). The command "RET" on line 5 returns to the routine one level above. The command on line 5 corresponds to step S6 in FIG. 122(b).

なお、図123(c)における指標「D_DSP_TZ」を起点としたテーブルは、例えば、特1大当たり図柄および特2大当たり図柄に関する情報を示す。例えば、変数「R_TZ1_DSP」、すなわち、特別図柄1表示図柄カウンタのカウンタ値が「02H」であった場合、図124に示すように、メインROM300bのプログラムデータに記述されたテーブル(2AH、A2H、A8H、36H…5DH、FDH)において選択アドレス(例えば、1250H)にAレジスタの値(例えば、02H)を加算したアドレス(低い方から3番目のアドレス)に格納された値(A8H)をAレジスタに読み出すことができる。このように、ここでは、同一バイト長の複数の値を連続して並置したテーブル中の所望する1バイト値を取得することが可能となる。 The table starting from the index "D_DSP_TZ" in FIG. 123(c) shows, for example, information on the special 1 big win symbol and the special 2 big win symbol. For example, when the variable "R_TZ1_DSP", i.e., the counter value of the special symbol 1 display symbol counter, is "02H", as shown in FIG. 124, the value (A8H) stored in the address (the third address from the lowest) obtained by adding the value of the A register (e.g., 02H) to the selected address (e.g., 1250H) in the table (2AH, A2H, A8H, 36H...5DH, FDH) described in the program data of the main ROM 300b can be read into the A register. In this way, it is possible to obtain the desired 1-byte value in a table in which multiple values of the same byte length are arranged in succession.

BYTESELモジュールは、複数のモジュールからサブルーチンとして呼び出される。例えば、図23のステップS100-55で示したサブコマンド群セット処理を実行するSBCMDSTモジュール、図26のステップS400-31で示したLED表示設定処理を実行するLED_PRCモジュール、図26のステップS400-33で示したソレノイドデータ設定処理(ソレノイド出力イメージ合成処理)を実行するSOL_SETモジュール、図26のステップS400-31で示したLED表示設定処理のサブルーチンである保留球数ビットデータ合成処理を実行するMEM_DATモジュール、図28のステップS530、S540で示したカウントスイッチ通過処理(第2始動口通過処理、大入賞口通過処理)を実行するTDN_PASモジュール、図43のステップS630で示した特別図柄停止図柄表示処理を実行するTZ_STPモジュール、図47のステップS720で示した大入賞口開放制御処理を実行するTD_OPNモジュール、図52のステップS810-11で示した普通図柄変動時間設定処理(普通図柄変動時間の決定処理)を実行するFSPNTMRモジュール、図39のステップS612で示した特別図柄変動パターン決定処理(特別図柄変動番号決定処理)を実行するTHPTSELモジュール、図37のステップS610-17で示される予備領域設定処理を実行するTRSVSELモジュール、図48のステップS730-9で示したエンディング時間設定処理を実行するTENDTMRモジュール、図43のステップS630-13(特別電動役物最大作動回数設定処理)中で実行される図柄オフセット取得処理(図示せず)を実行するZUGOFFSモジュール、図33のステップS536で示した取得時演出判定処理を実行するRGETCHKモジュール等から呼び出される。 The BYTESEL module is called as a subroutine from multiple modules. For example, the SBCMDST module executes the subcommand group set process shown in step S100-55 of FIG. 23, the LED_PRC module executes the LED display setting process shown in step S400-31 of FIG. 26, the SOL_SET module executes the solenoid data setting process (solenoid output image synthesis process) shown in step S400-33 of FIG. 26, the MEM_DAT module executes the reserved ball count bit data synthesis process, which is a subroutine of the LED display setting process shown in step S400-31 of FIG. 26, the TDN_PAS module executes the count switch passing process (second start port passing process, large prize port passing process) shown in steps S530 and S540 of FIG. 28, the TZ_STP module executes the special pattern stop pattern display process shown in step S630 of FIG. 43, and the large prize port shown in step S720 of FIG. 47. It is called from the TD_OPN module which executes the opening control process, the FSPNTMR module which executes the normal symbol change time setting process (normal symbol change time determination process) shown in step S810-11 of FIG. 52, the THPTSEL module which executes the special symbol change pattern determination process (special symbol change number determination process) shown in step S612 of FIG. 39, the TRSVSEL module which executes the reserve area setting process shown in step S610-17 of FIG. 37, the TENDTMR module which executes the ending time setting process shown in step S730-9 of FIG. 48, the ZUGOFFS module which executes the symbol offset acquisition process (not shown) which is executed in step S630-13 of FIG. 43 (special electric role maximum number of times operation setting process), the RGETCHK module which executes the acquisition time performance determination process shown in step S536 of FIG. 33, etc.

このように、図123(b)に示したBYTESELモジュールのコマンドの総コマンドサイズは、2行目のコマンド「ADDWB HL,A」1バイト+3行目のコマンド「LD A,(HL)」1バイト+4行目のコマンド「OR A,A」1バイト+5行目のコマンド「RET」1バイト=4バイトとなり、総実行サイクルは、2行目1サイクル+3行目2サイクル+4行目1サイクル+5行目3サイクル=7サイクルとなる。かかるBYTESELモジュールを設けることによって、上述した各モジュール内でバイトデータ選択処理を行うことなく、コマンドサイズ1バイトのコマンド「RST BYTESEL」で賄うことができるので、コマンドの短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 In this way, the total command size of the BYTESEL module commands shown in FIG. 123(b) is 1 byte of the command "ADDWB HL, A" on the second line + 1 byte of the command "LD A, (HL)" on the third line + 1 byte of the command "OR A, A" on the fourth line + 1 byte of the command "RET" on the fifth line = 4 bytes, and the total execution cycle is 1 cycle on the second line + 2 cycles on the third line + 1 cycle on the fourth line + 3 cycles on the fifth line = 7 cycles. By providing such a BYTESEL module, it is possible to cover the command size of 1 byte with the command "RST BYTESEL" without performing byte data selection processing within each of the above-mentioned modules, so it is possible to shorten the command and ensure the capacity of the control area for performing game control processing.

図125は、BYTESELモジュールを実現するためのコマンドの他の例を説明するための説明図である。ここでは、図123(b)のBYTESELモジュールのコマンド群を図125(b)のBYTESELモジュールのコマンド群に置き換えており、他の、図123(a)のBYTESELモジュールを呼び出す任意の処理のコマンド群、および、図123(c)のメインROM300bのプログラムデータにおける1バイトデータ群は、図125(a)、図125(c)として、そのまま用いている。ここでは、図125(a)、図125(c)のように、図123(a)、図123(c)と実質的に等しい処理についてはその説明を省略し、図125(b)の異なる処理のみを説明する。 Figure 125 is an explanatory diagram for explaining another example of commands for implementing the BYTESEL module. Here, the commands of the BYTESEL module in Figure 123(b) are replaced with the commands of the BYTESEL module in Figure 125(b), and the commands of any other process that calls the BYTESEL module in Figure 123(a) and the 1-byte data group in the program data of main ROM 300b in Figure 123(c) are used as is as in Figures 125(a) and 125(c). Here, as in Figures 125(a) and 125(c), explanations of processes that are substantially the same as those in Figures 123(a) and 123(c) are omitted, and only the different processes in Figure 125(b) are explained.

図125(b)の1行目の指標「BYTESEL:」は、当該BYTESELモジュールの先頭アドレスを示す。2行目のコマンド「ADDALD A,(HL)」によって、HLレジスタの値にAレジスタの値が加算され、加算後のHLレジスタで示されるアドレスに格納された1バイト値がAレジスタに読み出される。かかる2行目のコマンドが、図122(b)のステップS4に対応する。3行目のコマンド「OR A,A」によって、Aレジスタの値とAレジスタの値との論理和が計算される。かかる論理和により、ゼロフラグ(第1ゼロフラグおよび第2ゼロフラグ)を変化させることができる。すなわち、BYTESELモジュールでは、読み出されたAレジスタの値がゼロであるか否かをゼロフラグによって判定することが可能となる。かかる3行目のコマンドが、図122(b)のステップS5に対応する。そして、4行目のコマンド「RET」によって、1段上のルーチンに戻る。かかる4行目のコマンドが、図122(b)のステップS6に対応する。 The index "BYTESEL:" on the first line of FIG. 125(b) indicates the starting address of the BYTESEL module. The command "ADDALD A, (HL)" on the second line adds the value of the A register to the value of the HL register, and the one-byte value stored at the address indicated by the HL register after the addition is read into the A register. This command on the second line corresponds to step S4 in FIG. 122(b). The command "OR A, A" on the third line calculates the logical sum of the value of the A register and the value of the A register. This logical sum can change the zero flags (the first zero flag and the second zero flag). In other words, in the BYTESEL module, it becomes possible to determine whether the value of the A register that has been read is zero or not by the zero flag. This command on the third line corresponds to step S5 in FIG. 122(b). Then, the command "RET" on the fourth line returns to the routine one step above. The command on the fourth line corresponds to step S6 in Figure 122 (b).

ここで、コマンド「ADDALD A,(HL)」は、HLレジスタの値にAレジスタの値を加算してHLレジスタを更新するとともに、HLレジスタで示されるアドレスに格納された値をAレジスタに読み出すコマンドである。かかるコマンドのコマンドサイズは「1」であり、実行サイクルは「3」である。 The command "ADDALD A, (HL)" updates the HL register by adding the value in the A register to the value in the HL register, and reads the value stored in the address indicated by the HL register into the A register. The command size of this command is "1", and the execution cycle is "3".

図125(b)のBYTESELモジュールのコマンドの総コマンドサイズは、2行目のコマンド「ADDALD A,(HL)」1バイト+3行目のコマンド「OR A,A」1バイト+4行目のコマンド「RET」1バイト=3バイトとなり、総実行サイクルは、2行目3サイクル+3行目1サイクル+4行目3サイクル=7サイクルとなる。したがって、図123(b)の場合と比べ、総コマンドサイズが1バイト削減されていることが理解できる。かかるBYTESELモジュールによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 The total command size of the commands in the BYTESEL module in Figure 125(b) is 1 byte of the command "ADDALD A, (HL)" on line 2 + 1 byte of the command "OR A, A" on line 3 + 1 byte of the command "RET" on line 4 = 3 bytes, and the total execution cycles are 3 cycles on line 2 + 1 cycle on line 3 + 3 cycles on line 4 = 7 cycles. Therefore, it can be seen that the total command size has been reduced by 1 byte compared to the case in Figure 123(b). This BYTESEL module makes it possible to further shorten commands and ensure the capacity of the control area for performing game control processing.

また、図123(b)と図125(b)とを比較して理解できるように、図123(b)において2行(2、3行目)を占有していたコマンド群を、図125(b)においては1行(2行目)で表すことができ、コマンド数自体の削減、および、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing FIG. 123(b) with FIG. 125(b), a group of commands that occupies two lines (lines 2 and 3) in FIG. 123(b) can be represented in one line (line 2) in FIG. 125(b), making it possible to reduce the number of commands and lighten the design load.

図126は、BYTESELモジュールを実現するためのコマンドのさらに他の例を説明するための説明図である。ここでは、図125(a)のBYTESELモジュールを呼び出す任意の処理のコマンド群、および、図125(b)のBYTESELモジュールのコマンド群を、図126(a)の任意の処理のコマンド群に置き換えており、他の、図125(c)のメインROM300bのプログラムデータにおける1バイトデータ群は、図126(b)として、そのまま用いている。ここでは、図126(b)のように、図125(c)と実質的に等しい処理についてはその説明を省略し、図126(a)の異なる処理のみを説明する。 Figure 126 is an explanatory diagram for explaining yet another example of commands for implementing the BYTESEL module. Here, the command group for any process that calls the BYTESEL module in Figure 125(a) and the command group for the BYTESEL module in Figure 125(b) are replaced with the command group for any process in Figure 126(a), and the other 1-byte data group in the program data of main ROM 300b in Figure 125(c) is used as is as in Figure 126(b). Here, as in Figure 126(b), the description of the process that is substantially the same as Figure 125(c) is omitted, and only the different process in Figure 126(a) is described.

図126(a)の1行目のコマンド「LDQ A,(LOW R_TZ1_DSP)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_TZ1_DSP」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値をAレジスタに読み出す。かかる1行目のコマンドが、図122(a)のステップS1に対応する。2行目のコマンド「LD HL,D_DSP_TZ」によって、読み出し元となる1バイトデータ群の先頭アドレス「D_DSP_TZ」をHLレジスタに設定する。かかる2行目のコマンドが、図122(a)のステップS2に対応する。そして、3行目のコマンド「ADDALD A,(HL)」によって、HLレジスタの値にAレジスタの値が加算され、加算後のHLレジスタで示されるアドレスに格納された1バイト値がAレジスタに読み出される。かかる3行目のコマンドが、図122(b)のステップS4に対応する。 The command "LDQ A, (LOW R_TZ1_DSP)" on the first line of FIG. 126(a) sets the value of the Q register to the upper byte of the address, the value of the lower byte of the address "R_TZ1_DSP" to the lower byte of the address, and the value stored at that address is read into the A register. This command on the first line corresponds to step S1 in FIG. 122(a). The command "LD HL, D_DSP_TZ" on the second line sets the top address "D_DSP_TZ" of the 1-byte data group to be read from in the HL register. This command on the second line corresponds to step S2 in FIG. 122(a). Then, the command "ADDALD A, (HL)" on the third line adds the value of the A register to the value of the HL register, and the 1-byte value stored at the address indicated by the HL register after the addition is read into the A register. The command on the third line corresponds to step S4 in Figure 122 (b).

図126の例では、図122(a)のステップS3に対応するコマンド「RST BYTESEL」、図122(b)のステップS5に対応するコマンド「OR A,A」、および、図122(b)のステップS6に対応するコマンド「RET」が省略されている。 In the example of FIG. 126, the command "RST BYTESEL" corresponding to step S3 in FIG. 122(a), the command "OR A,A" corresponding to step S5 in FIG. 122(b), and the command "RET" corresponding to step S6 in FIG. 122(b) are omitted.

図126(a)の任意の処理のコマンド群の総コマンドサイズは、1行目のコマンド「LDQ A,(LOW R_TZ1_DSP)」2バイト+2行目のコマンド「LD HL,D_DSP_TZ」3バイト+3行目のコマンド「ADDALD A,(HL)」1バイト=6バイトとなり、総実行サイクルは、1行目2サイクル+2行目3サイクル+3行目3サイクル=8サイクルとなる。 The total command size of the command group for any process in FIG. 126(a) is 2 bytes for the command "LDQ A, (LOW R_TZ1_DSP)" on the first line + 3 bytes for the command "LD HL, D_DSP_TZ" on the second line + 1 byte for the command "ADDALD A, (HL)" on the third line = 6 bytes, and the total execution cycles are 2 cycles for the first line + 3 cycles for the second line + 3 cycles for the third line = 8 cycles.

これに対し、図125(a)、図125(b)の任意の処理およびBYTESELモジュールのコマンドの総コマンドサイズは、図125(a)の1行目のコマンド「LDQ A,(LOW R_TZ1_DSP)」2バイト+2行目のコマンド「LD HL,D_DSP_TZ」3バイト+3行目のコマンド「RST BYTESEL」1バイト+図125(b)の2行目のコマンド「ADDALD A,(HL)」1バイト+3行目のコマンド「OR A,A」1バイト+4行目のコマンド「RET」1バイト=9バイトとなり、総実行サイクルは、図125(a)の1行目2サイクル+2行目3サイクル+3行目4サイクル+図125(b)の2行目3サイクル+3行目1サイクル+4行目3サイクル=16サイクルとなる。したがって、図126の例では、図125の場合と比べ、総コマンドサイズが3バイト削減され、総実行サイクルが8サイクル削減されている。このようにBYTESELモジュール自体をコマンドとして任意の処理に埋め込むことで、コマンドの更なる短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 In contrast, the total command size of any processing and the BYTESEL module commands in Figures 125(a) and 125(b) is 2 bytes of the command "LDQ A, (LOW R_TZ1_DSP)" on the first line of Figure 125(a) + 3 bytes of the command "LD HL, D_DSP_TZ" on the second line + 1 byte of the command "RST BYTESEL" on the third line + 1 byte of the command "ADDALD A, (HL)" on the second line of Figure 125(b) + 1 byte of the command "OR A, A" on the third line + 1 byte of the command "RET" on the fourth line = 9 bytes, and the total execution cycles are 2 cycles on the first line of Figure 125(a) + 3 cycles on the second line + 4 cycles on the third line + 3 cycles on the second line + 1 cycle on the third line + 3 cycles on the fourth line of Figure 125(b) = 16 cycles. Therefore, in the example of FIG. 126, the total command size is reduced by 3 bytes and the total execution cycles are reduced by 8 cycles compared to the case of FIG. 125. In this way, by embedding the BYTESEL module itself as a command in any process, it is possible to further shorten the command and reduce the processing load, and to ensure the capacity of the control area for performing game control processing.

また、図125と図126とを比較して理解できるように、図125(b)において4行(1~4行目)を占有していたコマンド群を、図126においては記述する必要がなくなるので、コマンド数自体の削減、および、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 125 and 126, the command group that occupies four lines (lines 1 to 4) in Figure 125(b) does not need to be described in Figure 126, making it possible to reduce the number of commands themselves and lighten the design load.

また、BYTESELモジュールは、コマンド「RST」の対象としての汎用モジュールであるが、かかる汎用モジュールを省略することで、貴重な汎用モジュールの領域を空け、その領域に他のモジュールを配置することができる。こうしてリソースの有効活用が可能となる。 The BYTESEL module is also a general-purpose module that is the target of the "RST" command, but by omitting this general-purpose module, valuable general-purpose module space can be freed up and other modules can be placed in that space. This allows for more efficient use of resources.

ただし、図126の例では、コマンド「OR A,A」を省略することで、第1ゼロフラグを変化させることができなくなる。すなわち、読み出されたAレジスタの値がゼロであるか否かを第1ゼロフラグによって判定することができなくなる。しかし、バイトデータ選択処理後にAレジスタの値がゼロか否か判定する必要がない場合、そもそも、この機能を必要としない。また、コマンド「ADDALD A,(HL)」は、そのコマンドを実行しただけで、第2ゼロフラグを変化させることができる。したがって、Aレジスタの値がゼロか否か判定する必要がある場合、第2ゼロフラグを参照することによってAレジスタの値がゼロであるか否かを判定することが可能となる。 However, in the example of FIG. 126, by omitting the command "OR A, A", it becomes impossible to change the first zero flag. In other words, it becomes impossible to determine whether the value of the A register that has been read is zero or not using the first zero flag. However, if there is no need to determine whether the value of the A register is zero or not after the byte data selection process, this function is not required in the first place. Also, the command "ADDALD A, (HL)" can change the second zero flag simply by executing that command. Therefore, if it is necessary to determine whether the value of the A register is zero or not, it is possible to determine whether the value of the A register is zero or not by referring to the second zero flag.

なお、かかるBYTESELモジュールは、パチンコ機のみならず、スロットマシンにおける、例えば、レジスタ加算処理を実行するためのモジュールに利用される。 This BYTESEL module is used not only in pachinko machines, but also in slot machines, for example, as a module for performing register addition processing.

<コマンド「ADDALDW」>
WORDSELモジュールは、ワードデータ選択処理、すなわち、選択アドレスをオフセットさせ、そのオフセットされたアドレスに格納された2バイト値を設定するための汎用モジュールである。ここでは、WORDSELモジュールをメモリマップ上の0018Hに配置する例を挙げて説明する。
<Command "ADDALDW">
The WORDSEL module is a general-purpose module for word data selection processing, i.e., offsetting the selected address and setting the 2-byte value stored in the offset address. Here, an example will be given in which the WORDSEL module is placed at 0018H on the memory map.

メインCPU300aは、メインROM300bからプログラムを読み出し、読み出したプログラムを遂行し、任意の処理において、サブルーチンとしてWORDSELモジュールを呼び出し、WORDSELモジュールを遂行する。WORDSELモジュールでは、選択アドレスを所定値だけオフセットさせ、オフセットされたアドレスに格納された2バイト値を保持する。こうして、オフセットに応じた値を設定することができる。 The main CPU 300a reads a program from the main ROM 300b, executes the read program, and in any process, calls the WORDSEL module as a subroutine and executes the WORDSEL module. The WORDSEL module offsets the selected address by a specified value and holds the 2-byte value stored at the offset address. In this way, a value according to the offset can be set.

図127は、WORDSELモジュールの具体的な処理を示したフローチャートである。ここでは、任意の処理として、図51のステップS800で示した普通遊技管理処理を実行するFUT_PRCモジュールの一部を挙げて説明する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。また、当該WORDSELモジュールの説明中、第1レジスタはHLレジスタであり、第2レジスタはAレジスタである。 Figure 127 is a flow chart showing the specific processing of the WORDSEL module. Here, as an optional process, a part of the FUT_PRC module that executes the normal game management process shown in step S800 of Figure 51 will be explained. The numerical values of step S in this figure will be used only in the explanation of this figure. Also, in the explanation of this WORDSEL module, the first register is the HL register and the second register is the A register.

メインCPU300aは、図127(a)のように、任意の処理において、オフセットをAレジスタに設定し(S1)、読み出し対象となるアドレス群の先頭アドレスをHLレジスタに設定する(S2)。そして、サブルーチンとしてWORDSELモジュールを呼び出す(S3)。 As shown in FIG. 127(a), in any process, the main CPU 300a sets an offset in the A register (S1), and sets the first address of the address group to be read in the HL register (S2). Then, it calls the WORDSEL module as a subroutine (S3).

メインCPU300aは、図127(b)のように、WORDSELモジュールにおいて、HLレジスタの値にAレジスタの値を2回加算し、もしくは、Aレジスタの値を2倍した値を加算してHLレジスタを更新し(S4)、HLレジスタで示されるアドレスに格納された2バイト値をHLレジスタに読み出す(S5)。続いて、メインCPU300aは、Lレジスタの値をAレジスタに設定する(S6)。そして、当該WORDSELモジュールを終了して1段上のルーチンに戻る(S7)。 As shown in FIG. 127(b), in the WORDSEL module, the main CPU 300a updates the HL register by adding the value of the A register twice to the value of the HL register, or by adding twice the value of the A register (S4), and reads the 2-byte value stored at the address indicated by the HL register into the HL register (S5). Next, the main CPU 300a sets the value of the L register into the A register (S6). Then, the WORDSEL module is terminated and the process returns to the routine one level above (S7).

WORDSELモジュールによって、HLレジスタに2バイト値が設定されると、メインCPU300aは、そのHLレジスタの値を用いて様々な処理を遂行する。例えば、ここでは、図127(a)のように、HLレジスタが示すアドレスをサブルーチンとして呼び出している(S8)。 When a 2-byte value is set in the HL register by the WORDSEL module, the main CPU 300a uses the value in the HL register to carry out various processes. For example, here, as shown in FIG. 127(a), the address indicated by the HL register is called as a subroutine (S8).

図128、図129は、WORDSELモジュールを実現するためのコマンドの一例を説明するための説明図である。このうち、図128(a)は、WORDSELモジュールを呼び出す任意の処理のコマンド群を示し、図128(b)は、WORDSELモジュールのコマンド群を示し、図128(c)は、メインROM300bのプログラムデータにおける2バイトデータ群の配置を示す。図127で示したフローチャートは、例えば、図128に示したプログラムによって実現される。 Figures 128 and 129 are explanatory diagrams for explaining an example of commands for implementing a WORDSEL module. Of these, Figure 128(a) shows a group of commands for an arbitrary process that calls the WORDSEL module, Figure 128(b) shows a group of commands for the WORDSEL module, and Figure 128(c) shows the arrangement of a 2-byte data group in the program data of main ROM 300b. The flowchart shown in Figure 127 is implemented, for example, by the program shown in Figure 128.

図128(a)の1行目のコマンド「LDQ A,(LOW R_FUT_PHS)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_TZ1_DSP」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値をAレジスタに読み出す。かかる1行目のコマンドが、図127(a)のステップS1に対応する。2行目のコマンド「LD HL,J_JMP_FUT」によって、読み出し元となる2バイトデータ群の先頭アドレス「J_JMP_FUT」をHLレジスタに設定する。かかる2行目のコマンドが、図127(a)のステップS2に対応する。そして、3行目のコマンド「RST WORDSEL」によって、サブルーチンとしてWORDSELモジュールが呼び出される。かかる3行目のコマンドが、図127(a)のステップS3に対応する。 The command "LDQ A, (LOW R_FUT_PHS)" on the first line of FIG. 128(a) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_TZ1_DSP" to the lower byte of the address, and reads the value stored at that address into the A register. This command on the first line corresponds to step S1 in FIG. 127(a). The command "LD HL, J_JMP_FUT" on the second line sets the top address "J_JMP_FUT" of the 2-byte data group to be read from in the HL register. This command on the second line corresponds to step S2 in FIG. 127(a). And the command "RST WORDSEL" on the third line calls the WORDSEL module as a subroutine. This command on the third line corresponds to step S3 in FIG. 127(a).

図128(b)の1行目の指標「WORDSEL:」は、当該WORDSELモジュールの先頭アドレスを示す。2行目のコマンド「ADDWB HL,A」によって、HLレジスタの値にAレジスタの値が加算され、HLレジスタが更新される。さらに、3行目のコマンド「ADDWB HL,A」によって、HLレジスタの値にAレジスタの値が加算され、HLレジスタが更新される。ここで、Aレジスタの値をHLレジスタに2回加算しているのは、読み出し元の値が2バイト値だからである。すなわち、テーブルに2バイト単位でデータが割り当てられているので、データを読み出すためには、アドレスを2ずつオフセットする必要があるからである。なお、ここでは、コマンド「ADDWB HL,A」を2回実行することで、HLレジスタにAレジスタの値を2回加算しているが、2行目のコマンド「ADDWB HL,A」に代え、コマンド「ADD A,A」を用い、Aレジスタの値を予め2倍してから、HLレジスタに加算することでも実現できる。かかる2、3行目のコマンドが、図127(b)のステップS4に対応する。 The index "WORDSEL:" on the first line of FIG. 128(b) indicates the starting address of the WORDSEL module. The command "ADDWB HL,A" on the second line adds the value of the A register to the value of the HL register, updating the HL register. Furthermore, the command "ADDWB HL,A" on the third line adds the value of the A register to the value of the HL register, updating the HL register. The reason why the value of the A register is added twice to the HL register is because the value from which it is read is a 2-byte value. In other words, because data is assigned in 2-byte units to the table, it is necessary to offset the address by 2 in order to read the data. Note that here, the command "ADDWB HL,A" is executed twice to add the value of the A register to the HL register twice, but this can also be achieved by using the command "ADD A,A" instead of the command "ADDWB HL,A" on the second line, doubling the value of the A register before adding it to the HL register. The commands on the second and third lines correspond to step S4 in Figure 127 (b).

そして、図128(b)の4行目のコマンド「LD HL,(HL)」によって、HLレジスタで示されるアドレスに格納された2バイト値がHLレジスタに読み出される。かかる4行目のコマンドが、図127(b)のステップS5に対応する。5行目のコマンド「LD A,L」によって、HLレジスタのうち、Lレジスタの値がAレジスタに設定される。こうして、HLレジスタの値の下位1バイトが予めAレジスタに設定される。かかる5行目のコマンドが、図127(b)のステップS6に対応する。そして、6行目のコマンド「RET」によって、1段上のルーチンに戻る。かかる6行目のコマンドが、図127(b)のステップS7に対応する。 Then, the command "LD HL, (HL)" on the fourth line of FIG. 128(b) reads the two-byte value stored in the address indicated by the HL register into the HL register. This command on the fourth line corresponds to step S5 in FIG. 127(b). The command "LD A, L" on the fifth line sets the value of the L register in the A register of the HL register. In this way, the lowest byte of the value of the HL register is set in advance in the A register. This command on the fifth line corresponds to step S6 in FIG. 127(b). Then, the command "RET" on the sixth line returns to the routine one level above. This command on the sixth line corresponds to step S7 in FIG. 127(b).

なお、図128(c)における指標「J_JMP_FUT」を起点としたテーブルは、例えば、普通遊技の状態を示すアドレスを示す。例えば、変数「R_FUT_PHS」、すなわち、普通遊技管理フェーズの値が「02H」であった場合、図129に示すように、メインROM300bのプログラムデータに記述されたテーブル(FZ_STA、FZ_SPN、FZ_STP、FD_PRE、FD_OPN、FD_END)において選択アドレス(例えば、1270H)にAレジスタの値を2倍した値(例えば、04H)を加算したアドレス(低い方から5番目および6番目のアドレス)に格納された値、ここでは、0832H(FZ_STP)をHLレジスタに保持することができる。このように、ここでは、同一バイト長の複数の値を連続して並置したテーブル中の所望する2バイト値を取得することが可能となる。 The table starting from the index "J_JMP_FUT" in FIG. 128(c) indicates, for example, an address indicating the state of normal play. For example, when the value of the variable "R_FUT_PHS", i.e., the normal play management phase, is "02H", as shown in FIG. 129, the value stored in the address (fifth and sixth addresses from the lowest) obtained by adding the value obtained by multiplying the value of the A register by two (e.g., 04H) to the selected address (e.g., 1270H) in the table (FZ_STA, FZ_SPN, FZ_STP, FD_PRE, FD_OPN, FD_END) described in the program data of the main ROM 300b, here 0832H (FZ_STP), can be held in the HL register. In this way, it is possible to obtain the desired 2-byte value in a table in which multiple values of the same byte length are consecutively arranged.

ここで、FZ_STAは、図52のステップS810で示した普通図柄変動待ち処理のアドレス値を示し、FZ_SPNは、図53のステップS820で示した普通図柄変動中処理のアドレス値を示し、FZ_STPは、図54のステップS830で示した普通図柄停止図柄表示処理のアドレス値を示し、FD_PREは、図55のステップS840で示した普通電動役物入賞口開放前処理のアドレス値を示し、FD_OPNは、図57のステップS850で示した普通電動役物入賞口開放制御処理のアドレス値を示し、FD_CLSは、図58のステップS860で示した普通電動役物入賞口閉鎖有効処理のアドレス値を示し、FD_ENDは、図59のステップS870で示した普通電動役物入賞口終了ウェイト処理のアドレス値を示す。 Here, FZ_STA indicates the address value of the normal symbol change waiting process shown in step S810 of FIG. 52, FZ_SPN indicates the address value of the normal symbol change processing shown in step S820 of FIG. 53, FZ_STP indicates the address value of the normal symbol stop symbol display processing shown in step S830 of FIG. 54, FD_PRE indicates the address value of the normal electric device prize opening pre-processing shown in step S840 of FIG. 55, FD_OPN indicates the address value of the normal electric device prize opening opening control processing shown in step S850 of FIG. 57, FD_CLS indicates the address value of the normal electric device prize opening closing enable processing shown in step S860 of FIG. 58, and FD_END indicates the address value of the normal electric device prize opening end wait processing shown in step S870 of FIG. 59.

続いて、図128(a)の4行目のコマンド「CALL (HL)」によって、取得された2バイト値、すなわち、普通遊技の状態に応じたアドレス値を呼び出す。例えば、上記のように、テーブルにおいて0832H(FZ_STP)がHLレジスタに読み出されると、かかるコマンド「CALL (HL)」によって「FZ_STP」が示すアドレスを呼び出し、普通図柄停止図柄表示処理が実行されることとなる。かかる4行目のコマンドが、図127(a)のステップS8に対応する。 Then, the command "CALL (HL)" on the fourth line of FIG. 128(a) calls the acquired 2-byte value, i.e., the address value corresponding to the normal game state. For example, as described above, when 0832H (FZ_STP) is read into the HL register in the table, the command "CALL (HL)" calls the address indicated by "FZ_STP", and the normal stop symbol display process is executed. This command on the fourth line corresponds to step S8 in FIG. 127(a).

WORDSELモジュールは、複数のモジュールからサブルーチンとして呼び出される。例えば、図43のステップS630で示した特別図柄停止図柄表示処理の中で実行されるダブルバイト選択処理(図示せず)を実行するDBLBYTEモジュール、図23のステップS100-65で示したサブコマンド送信処理を実行するSBC_OUTモジュール、図26のステップS400-5で示したダイナミックポート出力処理を実行するDYM_OUTモジュール、図51のステップS800で示した普通遊技管理処理を実行するFUT_PRCモジュール、図36のステップS600で示した特別遊技管理処理を実行するTOK_PRCモジュール、図44のステップS700で特別電動役物遊技管理処理を実行するTDN_PRCモジュール、図31のステップS530で示した第2始動口通過処理を実行するSTA_PASモジュール、図34のステップS540で示したカウントスイッチ通過処理(大入賞口通過処理)を実行するTDN_PASモジュール、図32のステップS535で示した特別図柄乱数取得処理を実行するTZ_RGETモジュール、普通図柄変動時間設定処理を実行するFSPNTMRモジュール、図56のステップS841で示した普通電動役物入賞口開閉切替処理を実行するFDNCHGモジュール、図37のステップS610-9で示した特別図柄記憶エリアシフト処理を実行するTMEMSFTモジュール、図39のステップS612で示した特別図柄変動パターン決定処理を実行するTHPTSELモジュール、図37のステップS610で示した特別図柄変動待ち処理のステップS610-15で示した特別図柄変動時間設定処理を実行するTSPNTMモジュール、図43のステップS630-15で示したオープニング時間設定処理を実行するTSTATMRモジュール、図46のステップS711で示した大入賞口開閉切替処理を実行するTDNCHGモジュール、図48のステップS730-7で示した大入賞口閉鎖時間設定処理を実行するTCLSTMRモジュール、図48のステップS730-9で示したエンディング時間設定処理を実行するTENDTMRモジュール、図39のS612-15で示した変動パターン選択2処理(変動パターン番号決定処理)を実行するHPT_MODモジュール、図39のS612-15で示した変動パターン選択3処理(変動パターン番号決定処理)を実行するHPT_PATモジュール、図52のステップS810-5の中で実行されるワードデータ判定処理(図示せず)を実行するWORDJDGモジュール、図33のステップS536で示した取得時演出判定処理を実行するRGETCHKモジュール、図47のステップS720-9で示した大入賞口閉鎖有効時間設定処理のサブルーチンである大入賞口閉鎖有効時間選択処理を実行するTEF_SELモジュール等から呼び出される。 The WORDSEL module is called as a subroutine from multiple modules. For example, the DBLBYTE module executes the double byte selection process (not shown) executed in the special symbol stop symbol display process shown in step S630 of FIG. 43, the SBC_OUT module executes the subcommand transmission process shown in step S100-65 of FIG. 23, the DYM_OUT module executes the dynamic port output process shown in step S400-5 of FIG. 26, the FUT_PRC module executes the normal game management process shown in step S800 of FIG. 51, the TOK_PRC module executes the special game management process shown in step S600 of FIG. 36, and the TDN_PRC module executes the special electric role play management process in step S700 of FIG. 44. 31, a STA_PAS module which executes the second start gate passing process shown in step S530 of FIG. 31, a TDN_PAS module which executes the count switch passing process (large prize gate passing process) shown in step S540 of FIG. 34, a TZ_RGET module which executes the special symbol random number acquisition process shown in step S535 of FIG. 32, an FSPNTMR module which executes the normal symbol fluctuation time setting process, an FDNCHG module which executes the normal electric role prize gate opening/closing switching process shown in step S841 of FIG. 56, a TMEMSFT module which executes the special symbol memory area shift process shown in step S610-9 of FIG. THPTSEL module for executing pattern change pattern determination processing, TSPNTM module for executing special pattern change time setting processing shown in step S610-15 of the special pattern change waiting processing shown in step S610 of FIG. 37, TSTATMR module for executing opening time setting processing shown in step S630-15 of FIG. 43, TDNCHG module for executing large prize opening opening/closing switching processing shown in step S711 of FIG. 46, TCLSTMR module for executing large prize opening closing time setting processing shown in step S730-7 of FIG. 48, TENDTMR module for executing ending time setting processing shown in step S730-9 of FIG. It is called from the HPT_MOD module which executes the fluctuation pattern selection 2 process (fluctuation pattern number determination process) shown in 612-15, the HPT_PAT module which executes the fluctuation pattern selection 3 process (fluctuation pattern number determination process) shown in S612-15 of FIG. 39, the WORDJDG module which executes the word data determination process (not shown) executed in step S810-5 of FIG. 52, the RGETCHK module which executes the acquisition time performance determination process shown in step S536 of FIG. 33, the TEF_SEL module which executes the large prize opening closure effective time selection process which is a subroutine of the large prize opening closure effective time setting process shown in step S720-9 of FIG. 47, etc.

このように、図128(b)に示したWORDSELモジュールのコマンドの総コマンドサイズは、2行目のコマンド「ADDWB HL,A」1バイト+3行目のコマンド「ADDWB HL,A」1バイト+4行目のコマンド「LD HL,(HL)」2バイト+5行目のコマンド「LD A,L」1バイト+6行目のコマンド「RET」1バイト=6バイトとなり、総実行サイクルは、2行目1サイクル+3行目1サイクル+4行目4サイクル+5行目1サイクル+6行目3サイクル=10サイクルとなる。かかるWORDSELモジュールを設けることによって、上述した各モジュール内でワードデータ選択処理を行うことなく、コマンドサイズ1バイトのコマンド「RST WORDSEL」で賄うことができるので、コマンドの短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 In this way, the total command size of the WORDSEL module commands shown in FIG. 128(b) is 1 byte of the command "ADDWB HL, A" on the second line + 1 byte of the command "ADDWB HL, A" on the third line + 2 bytes of the command "LD HL, (HL)" on the fourth line + 1 byte of the command "LD A, L" on the fifth line + 1 byte of the command "RET" on the sixth line = 6 bytes, and the total execution cycle is 1 cycle on the second line + 1 cycle on the third line + 4 cycles on the fourth line + 1 cycle on the fifth line + 3 cycles on the sixth line = 10 cycles. By providing such a WORDSEL module, it is possible to cover the command size of 1 byte with the command "RST WORDSEL" without performing word data selection processing in each of the above-mentioned modules, so it is possible to shorten the command and secure the capacity of the control area for performing game control processing.

図130は、WORDSELモジュールを実現するためのコマンドの他の例を説明するための説明図である。ここでは、図128(b)のWORDSELモジュールのコマンド群を図130(b)のWORDSELモジュールのコマンド群に置き換えており、他の、図128(a)のWORDSELモジュールを呼び出す任意の処理のコマンド群、および、図128(c)のメインROM300bのプログラムデータにおける2バイトデータ群は、図130(a)、図130(c)として、そのまま用いている。ここでは、図130(a)、図130(c)のように、図128(a)、図128(c)と実質的に等しい処理についてはその説明を省略し、図130(b)の異なる処理のみを説明する。 Figure 130 is an explanatory diagram for explaining another example of commands for implementing the WORDSEL module. Here, the commands of the WORDSEL module in Figure 128(b) are replaced with the commands of the WORDSEL module in Figure 130(b), and the commands of any other process that calls the WORDSEL module in Figure 128(a) and the 2-byte data group in the program data of main ROM 300b in Figure 128(c) are used as is as in Figures 130(a) and 130(c). Here, as in Figures 130(a) and 130(c), explanations of processes that are substantially the same as those in Figures 128(a) and 128(c) are omitted, and only the different processes in Figure 130(b) are explained.

図130(b)の1行目の指標「WORDSEL:」は、当該WORDSELモジュールの先頭アドレスを示す。2行目のコマンド「ADDALDW HL,(HL)」によって、HLレジスタの値にAレジスタの値が2回加算され、加算後のHLレジスタで示されるアドレスに格納された2バイト値がHLレジスタに読み出される。かかる2行目のコマンドが、図127(b)のステップS4、S5に対応する。3行目のコマンド「LD A,L」によって、HLレジスタのうち、Lレジスタの値がAレジスタに設定される。こうして、HLレジスタの値の下位1バイトが予めAレジスタに設定される。かかる3行目のコマンドが、図127(b)のステップS6に対応する。そして、4行目のコマンド「RET」によって、1段上のルーチンに戻る。かかる6行目のコマンドが、図127(b)のステップS7に対応する。 The index "WORDSEL:" on the first line of FIG. 130(b) indicates the starting address of the WORDSEL module. The command "ADDALDW HL, (HL)" on the second line adds the value of the A register to the value of the HL register twice, and the two-byte value stored at the address indicated by the HL register after the addition is read into the HL register. This command on the second line corresponds to steps S4 and S5 in FIG. 127(b). The command "LD A,L" on the third line sets the value of the L register in the A register of the HL register. In this way, the lowest byte of the value of the HL register is set in advance in the A register. This command on the third line corresponds to step S6 in FIG. 127(b). Then, the command "RET" on the fourth line returns to the routine one step above. This command on the sixth line corresponds to step S7 in FIG. 127(b).

ここで、コマンド「ADDALDW HL,(HL)」は、HLレジスタの値にAレジスタの値が2回加算されHLレジスタを更新するとともに、加算後のHLレジスタで示されるアドレスに格納された値をHLレジスタに読み出すコマンドである。かかるコマンドのコマンドサイズは「2」であり、実行サイクルは「6」である。 Here, the command "ADDALDW HL, (HL)" updates the HL register by adding the value of the A register twice to the value of the HL register, and reads the value stored in the address indicated by the HL register after the addition into the HL register. The command size of this command is "2", and the execution cycle is "6".

続いて、図130(a)の4行目のコマンド「CALL (HL)」によって、取得された2バイト値、すなわち、普通遊技の状態に応じたアドレス値を呼び出す。かかる4行目のコマンドが、図127(a)のステップS8に対応する。 Then, the command "CALL (HL)" on the fourth line of FIG. 130(a) calls the acquired 2-byte value, i.e., the address value corresponding to the normal game state. This command on the fourth line corresponds to step S8 in FIG. 127(a).

図130(b)のWORDSELモジュールのコマンドの総コマンドサイズは、2行目のコマンド「ADDALDW HL,(HL)」2バイト+3行目のコマンド「LD A,L」1バイト+4行目のコマンド「RET」1バイト=4バイトとなり、総実行サイクルは、2行目6サイクル+3行目1サイクル+4行目3サイクル=10サイクルとなる。したがって、図128(b)の場合と比べ、総コマンドサイズが2バイト削減されている。かかるWORDSELモジュールによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 The total command size of the WORDSEL module commands in Figure 130(b) is 2 bytes of the command "ADDALDW HL, (HL)" on line 2 + 1 byte of the command "LD A,L" on line 3 + 1 byte of the command "RET" on line 4 = 4 bytes, and the total execution cycles are 6 cycles on line 2 + 1 cycle on line 3 + 3 cycles on line 4 = 10 cycles. Therefore, compared to the case in Figure 128(b), the total command size is reduced by 2 bytes. This WORDSEL module makes it possible to further shorten commands and ensure the capacity of the control area for performing game control processing.

また、図128(b)と図130(b)とを比較して理解できるように、図128(b)において3行(2、3、4行目)を占有していたコマンド群を、図130(b)においては1行(2行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing FIG. 128(b) with FIG. 130(b), a group of commands that occupies three lines (lines 2, 3, and 4) in FIG. 128(b) can be represented in one line (line 2) in FIG. 130(b), making it possible to reduce the number of commands and lighten the design load.

図131は、WORDSELモジュールを実現するためのコマンドのさらに他の例を説明するための説明図である。ここでは、図130(a)のWORDSELモジュールを呼び出す任意の処理のコマンド群、および、図130(b)のWORDSELモジュールのコマンド群を、図131(a)の任意の処理のコマンド群に置き換えており、他の、図130(c)のメインROM300bのプログラムデータにおける2バイトデータ群は、図131(b)として、そのまま用いている。ここでは、図131(b)のように、図130(c)と実質的に等しい処理についてはその説明を省略し、図131(a)の異なる処理のみを説明する。 Figure 131 is an explanatory diagram for explaining yet another example of commands for implementing a WORDSEL module. Here, the command group for any process that calls the WORDSEL module in Figure 130(a) and the command group for the WORDSEL module in Figure 130(b) are replaced with the command group for any process in Figure 131(a), and the other 2-byte data group in the program data of main ROM 300b in Figure 130(c) is used as is as in Figure 131(b). Here, as in Figure 131(b), the description of the process that is substantially the same as in Figure 130(c) is omitted, and only the different process in Figure 131(a) is described.

図131(a)の1行目のコマンド「LDQ A,(LOW R_FUT_PHS)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FUT_PHS」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値をAレジスタに読み出す。かかる1行目のコマンドが、図127(a)のステップS1に対応する。2行目のコマンド「LD HL
,J_JMP_FUT」によって、読み出し元となる1バイトデータ群の先頭アドレス「J_JMP_FUT」をHLレジスタに設定する。かかる2行目のコマンドが、図127(a)のステップS2に対応する。そして、3行目のコマンド「ADDALDW HL,(HL)」によって、HLレジスタの値にAレジスタの値が2回加算され、加算後のHLレジスタで示されるアドレスに格納された2バイト値がHLレジスタに読み出される。かかる3行目のコマンドが、図127(b)のステップS4、5に対応する。4行目のコマンド「CALL (HL)」によって、取得された2バイト値、すなわち、普通遊技の状態に応じたアドレス値を呼び出す。かかる4行目のコマンドが、図127(a)のステップS8に対応する。
The command "LDQ A, (LOW R_FUT_PHS)" on the first line of FIG. 131(a) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_FUT_PHS" to the lower byte of the address, and reads the value stored in that address into the A register. This command on the first line corresponds to step S1 in FIG. 127(a). The command on the second line, "LD HL
, J_JMP_FUT" sets the top address "J_JMP_FUT" of the 1-byte data group to be read in the HL register. This command on the second line corresponds to step S2 in FIG. 127(a). Then, the command on the third line "ADDALDW HL, (HL)" adds the value of the A register twice to the value of the HL register, and the 2-byte value stored in the address indicated by the HL register after the addition is read into the HL register. This command on the third line corresponds to steps S4 and S5 in FIG. 127(b). The command on the fourth line "CALL (HL)" calls the acquired 2-byte value, that is, the address value according to the normal game state. This command on the fourth line corresponds to step S8 in FIG. 127(a).

図131の例では、図127(a)のステップS3に対応するコマンド「RST WORDSEL」、図127(b)のステップS6に対応するコマンド「LD A,L」、および、図127(b)のステップS7に対応するコマンド「RET」が省略されている。 In the example of FIG. 131, the command "RST WORDSEL" corresponding to step S3 in FIG. 127(a), the command "LD A,L" corresponding to step S6 in FIG. 127(b), and the command "RET" corresponding to step S7 in FIG. 127(b) are omitted.

図131(a)の任意の処理およびWORDSELモジュールのコマンドの総コマンドサイズは、1行目のコマンド「LDQ A,(LOW R_FUT_PHS)」2バイト+2行目のコマンド「LD HL,J_JMP_FUT」3バイト+3行目のコマンド「ADDALDW HL,(HL)」2バイト+4行目のコマンド「CALL (HL)」2バイト=9バイトとなり、総実行サイクルは、1行目2サイクル+2行目3サイクル+3行目6サイクル+4行目5サイクル=16サイクルとなる。 The total command size of any process in Figure 131(a) and the WORDSEL module command is 2 bytes of the command "LDQ A, (LOW R_FUT_PHS)" on the first line + 3 bytes of the command "LD HL, J_JMP_FUT" on the second line + 2 bytes of the command "ADDALDW HL, (HL)" on the third line + 2 bytes of the command "CALL (HL)" on the fourth line = 9 bytes, and the total execution cycles are 2 cycles on the first line + 3 cycles on the second line + 6 cycles on the third line + 5 cycles on the fourth line = 16 cycles.

これに対し、図130(a)、図130(b)の任意の処理およびWORDSELモジュールのコマンドの総コマンドサイズは、図130(a)の1行目のコマンド「LDQ A,(LOW R_FUT_PHS)」2バイト+2行目のコマンド「LD HL,J_JMP_FUT」3バイト+3行目のコマンド「RST WORDSEL」1バイト+4行目のコマンド「CALL (HL)」2バイト+図130(b)の2行目のコマンド「ADDALDW HL,(HL)」2バイト+3行目のコマンド「LD A,L」1バイト+4行目のコマンド「RET」1バイト=12バイトとなり、総実行サイクルは、図130(a)の1行目2サイクル+2行目3サイクル+3行目4サイクル+4行目5サイクル+図130(b)の2行目6サイクル+3行目1サイクル+4行目3サイクル=24サイクルとなる。したがって、図131の例では、図130の場合と比べ、総コマンドサイズが3バイト削減され、総実行サイクルが8サイクル削減されている。このようにWORDSELモジュール自体をコマンドとして任意の処理に埋め込むことで、コマンドの更なる短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 In contrast, the total command size of any processing and WORDSEL module commands in Figures 130(a) and 130(b) is 2 bytes of the command "LDQ A, (LOW R_FUT_PHS)" on the first line of Figure 130(a) + 3 bytes of the command "LD HL, J_JMP_FUT" on the second line + 1 byte of the command "RST WORDSEL" on the third line + 2 bytes of the command "CALL (HL)" on the fourth line + 2 bytes of the command "ADDALDW HL, (HL)" on the second line of Figure 130(b) + 2 bytes of the command "LD A, L" 1 byte + command "RET" 1 byte on line 4 = 12 bytes, and the total execution cycles are 2 cycles on line 1 in FIG. 130(a) + 3 cycles on line 2 + 4 cycles on line 3 + 5 cycles on line 4 + 6 cycles on line 2 + 1 cycle on line 3 + 3 cycles on line 4 in FIG. 130(b) = 24 cycles. Therefore, in the example of FIG. 131, the total command size is reduced by 3 bytes and the total execution cycles are reduced by 8 cycles compared to the case of FIG. 130. In this way, by embedding the WORDSEL module itself as a command in any process, it is possible to further shorten the command and reduce the processing load, and to ensure the capacity of the control area for performing game control processing.

また、図130と図131とを比較して理解できるように、図130(b)において4行(1~4行目)を占有していたコマンド群を、図131においては記述する必要がなくなるので、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 130 and 131, the command group that occupies four lines (lines 1 to 4) in Figure 130(b) does not need to be described in Figure 131, making it possible to reduce the number of commands and lighten the design load.

また、WORDSELモジュールは、コマンド「RST」の対象としての汎用モジュールであるが、かかる汎用モジュールを省略することで、貴重な汎用モジュールの領域を空け、その領域に他のモジュールを配置することができる。こうしてリソースの有効活用が可能となる。 The WORDSEL module is also a general-purpose module that is the target of the "RST" command, but by omitting such a general-purpose module, valuable general-purpose module space can be freed up and other modules can be placed in that space. This allows for more efficient use of resources.

ただし、図131の例では、コマンド「LD A,L」を省略している。したがって、Lレジスタの値をAレジスタに設定する必要がある場合、別途、コマンド「LD A,L」を追加する必要がある。しかし、コマンド「LD A,L」は、コマンドサイズが「1」であり、実行サイクルが「1」なので、かかるコマンドの追加の影響は小さい。 However, in the example of Figure 131, the command "LD A, L" is omitted. Therefore, if it is necessary to set the value of the L register in the A register, it is necessary to add the command "LD A, L" separately. However, since the command "LD A, L" has a command size of "1" and an execution cycle of "1", the impact of adding such a command is small.

なお、かかるWORDSELモジュールは、パチンコ機のみならず、スロットマシンにおける、例えば、図98のステップS3100-21で示した状態別モジュール実行処理を実行するためのCAL_MODモジュールや、そのCAL_MODモジュールから移行し、本前兆開始判定処理を実行するためのHID_JUGモジュールに利用される。 This WORDSEL module is used not only in pachinko machines, but also in slot machines, for example, in the CAL_MOD module for executing the state-specific module execution process shown in step S3100-21 of FIG. 98, and the HID_JUG module that transitions from the CAL_MOD module and executes the premonition start determination process.

図132は、CAL_MODモジュールを説明するための説明図である。図132に示したCAL_MODモジュールは、状態別モジュール実行処理、すなわち、状態に対応したモジュールを実行する。 Figure 132 is an explanatory diagram for explaining the CAL_MOD module. The CAL_MOD module shown in Figure 132 executes state-specific module execution processing, i.e., executes a module corresponding to the state.

かかるCAL_MODモジュールを実行する段階では、既に、オフセット値が所定のレジスタ(例えば、Aレジスタ)に保持されている。図132(a)の1行目の指標「CAL_MOD:」は、当該CAL_MODモジュールの先頭アドレスを示す。2行目のコマンド「LD HL,T_INT_PHASE」によって、読み出し元となる2バイトデータ群の先頭アドレス「T_INT_PHASE」がHLレジスタに設定される。3行目のコマンド「ADD A,A」によって、Aレジスタの値にAレジスタの値が加算され、Aレジスタの値が2倍になる。ここで、Aレジスタの値を2倍にしているのは、読み出し元の値が2バイト値だからである。すなわち、テーブルに2バイト単位でデータが割り当てられているので、データを読み出すためには、アドレスを2ずつオフセットする必要があるからである。4行目のコマンド「ADDWB HL,A」によって、HLレジスタの値にAレジスタの値が加算され、HLレジスタが更新される。 At the stage of executing such a CAL_MOD module, the offset value is already held in a specified register (for example, the A register). The index "CAL_MOD:" on the first line of FIG. 132(a) indicates the start address of the CAL_MOD module. The command "LD HL, T_INT_PHASE" on the second line sets the start address "T_INT_PHASE" of the 2-byte data group to be read in the HL register. The command "ADD A, A" on the third line adds the value of the A register to the value of the A register, doubling the value of the A register. The value of the A register is doubled here because the value to be read is a 2-byte value. In other words, because data is assigned in units of 2 bytes to the table, it is necessary to offset the address by 2 in order to read the data. The command "ADDWB HL, A" on the fourth line adds the value of the A register to the value of the HL register, updating the HL register.

そして、図132(a)の5行目のコマンド「LD HL,(HL)」によって、HLレジスタで示されるアドレスに格納された2バイト値がHLレジスタに読み出される。6行目のコマンド「JP (HL)」によって、HLアドレスで示されるアドレスに移動する。 Then, the command "LD HL, (HL)" on the fifth line of Figure 132(a) reads the two-byte value stored at the address indicated by the HL register into the HL register. The command "JP (HL)" on the sixth line moves to the address indicated by the HL address.

ここで、コマンド「ADDALDW」への置き換えを行うと、図132(a)のコマンド群を図132(b)のように変更することができる。図132(b)の1行目の指標「CAL_MOD:」は、当該CAL_MODモジュールの先頭アドレスを示す。2行目のコマンド「LD HL,T_INT_PHASE」によって、読み出し元となる2バイトデータ群の先頭アドレス「T_INT_PHASE」がHLレジスタに設定される。3行目のコマンド「ADDALDW HL,(HL)」によって、HLレジスタの値にAレジスタの値が2回加算され、加算後のHLレジスタで示されるアドレスに格納された2バイト値がHLレジスタに読み出される。そして、4行目のコマンド「JP (HL)」によって、HLアドレスで示されるアドレスに移動する。 Now, by replacing it with the command "ADDALDW", the command group in FIG. 132(a) can be changed to that in FIG. 132(b). The index "CAL_MOD:" on the first line of FIG. 132(b) indicates the starting address of the CAL_MOD module. The command "LD HL, T_INT_PHASE" on the second line sets the starting address "T_INT_PHASE" of the 2-byte data group to be read from in the HL register. The command "ADDALDW HL, (HL)" on the third line adds the value of the A register twice to the value of the HL register, and the 2-byte value stored in the address indicated by the HL register after the addition is read into the HL register. Then, the command "JP (HL)" on the fourth line moves to the address indicated by the HL address.

ここで、図132(a)に示したCAL_MODモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LD HL,T_INT_PHASE」3バイト+3行目のコマンド「ADD A,A」1バイト+4行目のコマンド「ADDWB HL,A」1バイト+5行目のコマンド「LD HL,(HL)」2バイト+6行目のコマンド「JP (HL)」2バイト=9バイトとなり、総実行サイクルは、2行目3サイクル+3行目1サイクル+4行目1サイクル+5行目4サイクル+6行目2サイクル=11サイクルとなる。一方、図132(b)に示したCAL_MODモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LD HL,T_INT_PHASE」3バイト+3行目のコマンド「ADDALDW HL,(HL)」2バイト+4行目のコマンド「JP (HL)」2バイト=7バイトとなり、総実行サイクルは、2行目3サイクル+3行目6サイクル+4行目2サイクル=11サイクルとなる。したがって、図132(a)のコマンド群を図132(b)のコマンド群に置き換えることで、総コマンドサイズが2バイト削減される。かかる置き換えによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the commands of the CAL_MOD module shown in FIG. 132(a) is 3 bytes of the command "LD HL,T_INT_PHASE" on line 2 + 1 byte of the command "ADD A,A" on line 3 + 1 byte of the command "ADDWB HL,A" on line 4 + 2 bytes of the command "LD HL,(HL)" on line 5 + 2 bytes of the command "JP (HL)" on line 6 = 9 bytes, and the total execution cycles are 3 cycles on line 2 + 1 cycle on line 3 + 1 cycle on line 4 + 4 cycles on line 5 + 2 cycles on line 6 = 11 cycles. On the other hand, the total command size of the CAL_MOD module commands shown in FIG. 132(b) is 3 bytes of the command "LD HL, T_INT_PHASE" on the second line + 2 bytes of the command "ADDALDW HL, (HL)" on the third line + 2 bytes of the command "JP (HL)" on the fourth line = 7 bytes, and the total execution cycle is 3 cycles on the second line + 6 cycles on the third line + 2 cycles on the fourth line = 11 cycles. Therefore, by replacing the command group in FIG. 132(a) with the command group in FIG. 132(b), the total command size is reduced by 2 bytes. This replacement makes it possible to further shorten the commands and secure the capacity of the control area for performing game control processing.

図133は、HID_JUGモジュールを説明するための説明図である。図133に示したHID_JUGモジュールは、本前兆開始判定処理を実行する。 Figure 133 is an explanatory diagram for explaining the HID_JUG module. The HID_JUG module shown in Figure 133 executes this precursor start determination process.

図133(a)の1行目の指標「HID_JUG:」は、当該HID_JUGモジュールの先頭アドレスを示す。2行目のコマンド「LDQ A,(LOW _NMD_KND)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_NMD_KND」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(通常モード種別)をAレジスタに読み出す。3行目のコマンド「LD HL,T_DAT_PGM-2」によって、読み出し元となる2バイトデータ群の先頭アドレス(「T_DAT_PGM」から2を減算した値)がHLレジスタに設定される。4行目のコマンド「ADD A,A」によって、Aレジスタの値にAレジスタの値が加算され、Aレジスタの値が2倍になる。ここで、Aレジスタの値を2倍にしているのは、読み出し元の値が2バイト値だからである。すなわち、テーブルに2バイト単位でデータが割り当てられているので、データを読み出すためには、アドレスを2ずつオフセットする必要があるからである。5行目のコマンド「ADDWB HL,A」によって、HLレジスタの値にAレジスタの値が加算され、HLレジスタが更新される。そして、図133(a)の6行目のコマンド「LD HL,(HL)」によって、HLレジスタで示されるアドレスに格納された2バイト値がHLレジスタに読み出される。 The index "HID_JUG:" on the first line of Figure 133 (a) indicates the starting address of the HID_JUG module. The command "LDQ A, (LOW _NMD_KND)" on the second line sets the value of the Q register to the most significant byte of the address, and the value of the least significant byte of the address "_NMD_KND" to the least significant byte of the address, and reads the value stored at that address (normal mode type) into the A register. The command "LD HL, T_DAT_PGM-2" on the third line sets the starting address of the 2-byte data group to be read (the value obtained by subtracting 2 from "T_DAT_PGM") into the HL register. The command "ADD A, A" on the fourth line adds the value of the A register to the value of the A register, doubling the value of the A register. The value of the A register is doubled here because the value to be read is a 2-byte value. That is, because data is assigned to the table in units of two bytes, the address must be offset by two to read the data. The command "ADDWB HL, A" on line 5 adds the value of the A register to the value of the HL register, updating the HL register. Then, the command "LD HL, (HL)" on line 6 of Figure 133(a) reads the 2-byte value stored at the address indicated by the HL register into the HL register.

ここで、コマンド「ADDALDW」への置き換えを行うと、図133(a)のコマンド群を図133(b)のように変更することができる。図133(b)の1行目の指標「HID_JUG:」は、当該HID_JUGモジュールの先頭アドレスを示す。2行目のコマンド「LDQ A,(LOW _NMD_KND)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_NMD_KND」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(通常モード種別)をAレジスタに読み出す。3行目のコマンド「LD HL,T_DAT_PGM-2」によって、読み出し元となる2バイトデータ群の先頭アドレス(「T_DAT_PGM」から2を減算した値)がHLレジスタに設定される。4行目のコマンド「ADDALDW HL,(HL)」によって、HLレジスタの値にAレジスタの値が2回加算され、加算後のHLレジスタで示されるアドレスに格納された2バイト値がHLレジスタに読み出される。 If the command "ADDALDW" is substituted here, the command group in FIG. 133(a) can be changed to that in FIG. 133(b). The index "HID_JUG:" on the first line of FIG. 133(b) indicates the starting address of the HID_JUG module. The command "LDQ A, (LOW _NMD_KND)" on the second line sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "_NMD_KND" to the lower byte of the address, and reads the value stored at that address (normal mode type) into the A register. The command "LD HL, T_DAT_PGM-2" on the third line sets the starting address of the 2-byte data group to be read (the value obtained by subtracting 2 from "T_DAT_PGM") into the HL register. The command on the fourth line, "ADDALDW HL, (HL)," adds the value of the A register twice to the value of the HL register, and the two-byte value stored in the address indicated by the HL register after the addition is read into the HL register.

ここで、図133(a)に示したHID_JUGモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LDQ A,(LOW _NMD_KND)」2バイト+3行目のコマンド「LD HL,T_DAT_PGM-2」3バイト+4行目のコマンド「ADD A,A」1バイト+5行目のコマンド「ADDWB HL,A」1バイト+6行目のコマンド「LD HL,(HL)」2バイト=9バイトとなり、総実行サイクルは、2行目2サイクル+3行目3サイクル+4行目1サイクル+5行目1サイクル+6行目4サイクル=11サイクルとなる。一方、図133(b)に示したHID_JUGモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LDQ A,(LOW _NMD_KND)」2バイト+3行目のコマンド「LD HL,T_DAT_PGM-2」3バイト+4行目のコマンド「ADDALDW HL,(HL)」2バイト=7バイトとなり、総実行サイクルは、2行目2サイクル+3行目3サイクル+4行目6サイクル=11サイクルとなる。したがって、図133(a)のコマンド群を図133(b)のコマンド群に置き換えることで、総コマンドサイズが2バイト削減される。かかる置き換えによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the commands of the HID_JUG module shown in FIG. 133(a) is 2 bytes of the command "LDQ A, (LOW _NMD_KND)" on line 2 + 3 bytes of the command "LD HL, T_DAT_PGM-2" on line 3 + 1 byte of the command "ADD A, A" on line 4 + 1 byte of the command "ADDWB HL, A" on line 5 + 2 bytes of the command "LD HL, (HL)" on line 6 = 9 bytes, and the total execution cycles are 2 cycles on line 2 + 3 cycles on line 3 + 1 cycle on line 4 + 1 cycle on line 5 + 4 cycles on line 6 = 11 cycles. On the other hand, the total command size of the HID_JUG module commands shown in FIG. 133(b) is 2 bytes of the command "LDQ A, (LOW _NMD_KND)" on the second line + 3 bytes of the command "LD HL, T_DAT_PGM-2" on the third line + 2 bytes of the command "ADDALDW HL, (HL)" on the fourth line = 7 bytes, and the total execution cycle is 2 cycles on the second line + 3 cycles on the third line + 6 cycles on the fourth line = 11 cycles. Therefore, by replacing the command group in FIG. 133(a) with the command group in FIG. 133(b), the total command size is reduced by 2 bytes. This replacement makes it possible to further shorten the commands and secure the capacity of the control area for performing game control processing.

<コマンド「INLD」、「INLDTQR」>
RAMSETモジュールは、ラムセット処理、すなわち、メインRAM300cの変数に所定の値(初期値)を設定するための汎用モジュールである。ここでは、RAMSETモジュールをメモリマップ上の0020Hに配置する例を挙げて説明する。
<Command "INLD", "INLDTQR">
The RAMSET module is a general-purpose module for RAM set processing, that is, for setting a predetermined value (initial value) to a variable in the main RAM 300c. Here, an example in which the RAMSET module is located at 0020H on the memory map will be described.

メインCPU300aは、メインROM300bからプログラムを読み出し、読み出したプログラムを遂行し、任意の処理において、サブルーチンとしてRAMSETモジュールを呼び出し、RAMSETモジュールを遂行する。RAMSETモジュールでは、メインROM300bのプログラムデータに記述された複数の1バイト値を、メインRAM300cのワークエリアにおいて変数として扱われる複数のデータを保持する領域に転送する。こうして、複数の変数の値が設定される。ここで、転送するデータの数を単にデータ数と言う。 The main CPU 300a reads a program from the main ROM 300b, executes the read program, and in any process, calls the RAMSET module as a subroutine and executes the RAMSET module. The RAMSET module transfers multiple 1-byte values written in the program data in the main ROM 300b to an area in the work area of the main RAM 300c that holds multiple pieces of data treated as variables. In this way, the values of multiple variables are set. Here, the number of pieces of data to be transferred is simply referred to as the number of pieces of data.

図134は、RAMSETモジュールの具体的な処理を示したフローチャートである。ここでは、任意の処理として、図22のステップS100で示したCPU初期化処理を実行するCPUINITモジュールの一部を挙げて説明する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。また、当該RAMSETモジュールの説明中、第1レジスタはBレジスタであり、第2レジスタはHLレジスタであり、第1値は「1」であり、第2値は「2」である。なお、第1値および第2値を任意に設定できるのは言うまでもない。 Figure 134 is a flow chart showing the specific processing of the RAMSET module. Here, as an optional process, a part of the CPUINIT module that executes the CPU initialization process shown in step S100 of Figure 22 will be described. The numerical values of step S in this figure will be used only in the explanation of this figure. Also, in the explanation of this RAMSET module, the first register is the B register, the second register is the HL register, the first value is "1", and the second value is "2". It goes without saying that the first value and the second value can be set arbitrarily.

メインCPU300aは、図134(a)のように、任意の処理において、転送元となる1バイトデータ群の先頭アドレスをHLレジスタに設定する(S1)。そして、サブルーチンとしてRAMSETモジュールを呼び出す(S2)。 As shown in FIG. 134(a), in any process, the main CPU 300a sets the first address of a 1-byte data group that is to be transferred in the HL register (S1). Then, it calls the RAMSET module as a subroutine (S2).

メインCPU300aは、図134(b)のように、RAMSETモジュールにおいて、HLレジスタで示されるアドレスに格納された1バイト値をBレジスタに読み出す(S3)。かかる1バイト値はデータ数を示す。続いて、メインCPU300aは、HLレジスタに「1」を加えた値で示されるアドレスに格納された値で特定されるアドレスに、HLレジスタに「2」を加えた値で示されるアドレスに格納された値を転送し、HLレジスタの値に「2」を加えて次に転送するアドレスを設定する(S4)。続いて、メインCPU300aは、Bレジスタの値をデクリメント(「1」減算)し、デクリメントした結果が0であるか否か判定する(S5)。ここで、デクリメントした結果が0でなければ(S5におけるNO)、ステップS4からの処理を繰り返し、デクリメントした結果が0であれば(S5におけるYES)、当該RAMSETモジュールを終了して1段上のルーチンに戻る(S6)。 As shown in FIG. 134(b), the main CPU 300a reads the 1-byte value stored in the address indicated by the HL register in the RAMSET module into the B register (S3). This 1-byte value indicates the number of data. Next, the main CPU 300a transfers the value stored in the address indicated by the value added by the HL register plus "2" to the address specified by the value stored in the address indicated by the value added by the HL register plus "1", and adds "2" to the value of the HL register to set the next address to be transferred (S4). Next, the main CPU 300a decrements (subtracts "1") the value of the B register and determines whether the result of the decrement is 0 or not (S5). If the result of the decrement is not 0 (NO in S5), the process from step S4 is repeated, and if the result of the decrement is 0 (YES in S5), the RAMSET module is terminated and the process returns to the routine one step above (S6).

図135、図136は、RAMSETモジュールを実現するためのコマンドの一例を説明するための説明図である。このうち、図135(a)は、RAMSETモジュールを呼び出す任意の処理のコマンド群を示し、図135(b)は、RAMSETモジュールのコマンド群を示し、図135(c)は、メインROM300bのプログラムデータにおける1バイトデータ群の配置を示し、図135(d)は、メインRAM300cのワークエリアにおける1バイトデータ群の配置を示す。図134で示したフローチャートは、例えば、図135に示したプログラムによって実現される。 Figures 135 and 136 are explanatory diagrams for explaining an example of commands for implementing a RAMSET module. Of these, Figure 135(a) shows a group of commands for an arbitrary process that calls the RAMSET module, Figure 135(b) shows a group of commands for the RAMSET module, Figure 135(c) shows the arrangement of a 1-byte data group in the program data of main ROM 300b, and Figure 135(d) shows the arrangement of a 1-byte data group in the work area of main RAM 300c. The flowchart shown in Figure 134 is implemented, for example, by the program shown in Figure 135.

図135(a)の1行目のコマンド「LD HL,D_RAM_RST_INI」によって、転送元となる1バイトデータ群の先頭アドレス「D_RAM_RST_INI」をHLレジスタに設定する。かかる1行目のコマンドが、図134(a)のステップS1に対応する。そして、2行目のコマンド「RST RAMSET」によって、サブルーチンとしてRAMSETモジュールが呼び出される。かかる2行目のコマンドが、図134(a)のステップS2に対応する。 The command "LD HL, D_RAM_RST_INI" on the first line of Fig. 135(a) sets the first address "D_RAM_RST_INI" of the 1-byte data group that is the transfer source in the HL register. This command on the first line corresponds to step S1 in Fig. 134(a). Then, the command "RST RAMSET" on the second line calls the RAMSET module as a subroutine. This command on the second line corresponds to step S2 in Fig. 134(a).

図135(b)の1行目の指標「RAMSET:」は、当該RAMSETモジュールの先頭アドレスを示す。2行目のコマンド「LD B,(HL)」によって、HLレジスタで示されるアドレスに格納された1バイト値がBレジスタに読み出される。このとき、HLレジスタには、図135(a)で示したように、アドレス「D_RAM_RST_INI」が設定されている。したがって、図135(c)の2行目の1バイト値「(@D_RAM_RST_INI-D_RAM_RST_INI-1)/2」がデータ数(転送の繰り返し数)としてBレジスタに読み出されることとなる。なお、「@D_RAM_RST_INI」は、転送元となる1バイトデータ群の最終アドレスの次のアドレスであり、D_RAM_RST_INIは転送元となる1バイトデータ群の先頭アドレスなので、@D_RAM_RST_INI-D_RAM_RST_INI-1の値(データ数を示す1バイト値)の値が、1バイト値の総バイト数となり、その値を、アドレスと値との組み合わせ数である2で除算すると、データ数が導出される。図135(c)の例では、データ数は、(11-1)/2=5となる。かかる図135(c)の2行目のコマンドが、図134(b)のステップS3に対応する。 The index "RAMSET:" on the first line of Figure 135(b) indicates the starting address of the RAMSET module. The command "LD B, (HL)" on the second line causes the one-byte value stored at the address indicated by the HL register to be read into the B register. At this time, the address "D_RAM_RST_INI" is set in the HL register, as shown in Figure 135(a). Therefore, the one-byte value "(@D_RAM_RST_INI-D_RAM_RST_INI-1)/2" on the second line of Figure 135(c) is read into the B register as the number of data (number of transfer repetitions). Note that "@D_RAM_RST_INI" is the address next to the final address of the 1-byte data group that is the source of transfer, and D_RAM_RST_INI is the first address of the 1-byte data group that is the source of transfer, so the value of @D_RAM_RST_INI-D_RAM_RST_INI-1 (the 1-byte value indicating the number of data) is the total number of 1-byte values, and the number of data is derived by dividing this value by 2, which is the number of combinations of addresses and values. In the example of FIG. 135(c), the number of data is (11-1)/2=5. The command on the second line of FIG. 135(c) corresponds to step S3 in FIG. 134(b).

図135(b)の3行目の指標「RAMSET_10:」は繰り返し処理の先頭アドレスを示す。4行目のコマンド「INLD AC,(HL)」および5行目のコマンド「LDQ (C),A」によって、HLレジスタに「1」を加えた値で示されるアドレスに格納された値で特定されるアドレスに、HLレジスタに「2」を加えた値で示されるアドレスに格納された値が格納され、HLレジスタの値に「2」が加えられて次に転送するアドレスが設定される。かかる4、5行目のコマンドが、図134(b)のステップS4に対応する。 The index "RAMSET_10:" on the third line of Figure 135(b) indicates the start address of the repeat process. The command "INLD AC, (HL)" on the fourth line and the command "LDQ (C), A" on the fifth line store the value stored in the address indicated by adding "2" to the HL register into the address specified by the value stored in the address indicated by adding "1" to the HL register, and "2" is added to the value of the HL register to set the address to be transferred next. These commands on the fourth and fifth lines correspond to step S4 in Figure 134(b).

ここで、コマンド「INLD AC,(HL)」は、HLレジスタに「1」を加えた値で示されるアドレスに格納された値をCレジスタに格納し、HLレジスタに「2」を加えた値で示されるアドレスに格納された値をAレジスタに格納し、HLレジスタの値に「2」を加えてHLレジスタの値を更新するコマンドである。かかるコマンドのコマンドサイズは「2」であり、実行サイクルは「4」である。 Here, the command "INLD AC, (HL)" stores the value stored at the address indicated by adding "1" to the HL register in the C register, stores the value stored at the address indicated by adding "2" to the HL register in the A register, and updates the value of the HL register by adding "2" to it. The command size of this command is "2", and the execution cycle is "4".

例えば、HLレジスタがアドレス「D_RAM_RST_INI」の値であった場合、図135(c)の3行目における2バイト変数「R_TZ1_STP」の下位1バイト値がCレジスタに格納され、図135(c)の3行目における「@DSP_HAZ」の値がAレジスタに格納される。 For example, if the HL register contains the value of the address "D_RAM_RST_INI", the value of the lowest byte of the 2-byte variable "R_TZ1_STP" on the third line of Figure 135(c) is stored in the C register, and the value of "@DSP_HAZ" on the third line of Figure 135(c) is stored in the A register.

また、図135(b)の5行目のコマンド「LDQ (C),A」は、Qレジスタの値をアドレスの上位1バイトとし、Cレジスタの値をアドレスの下位1バイトとし、そのアドレスに、Aレジスタの値を格納するコマンドである。かかるコマンドのコマンドサイズは「2」であり、実行サイクルは「3」である。 The command "LDQ (C), A" on the fifth line of Figure 135(b) is a command that stores the value of the A register at the address with the value of the Q register as the most significant byte of the address and the value of the C register as the least significant byte of the address. The command size of this command is "2" and the execution cycle is "3".

例えば、Cレジスタの値、すなわち「R_TZ1_STP」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに、Aレジスタの値、すなわち、「@DSP_HAZ」の値を格納する。 For example, the value of the C register, i.e., the value of the lowest byte of "R_TZ1_STP", is set as the lowest byte of the address, and the value of the A register, i.e., the value of "@DSP_HAZ", is stored in that address.

ここで、図135(c)、図135(d)において、変数「R_TZ1_STP」は、特別図柄1停止図柄番号を示し、変数「R_TZ2_STP」は、特別図柄2停止図柄番号を示し、変数「R_TZ1_DSP」は、特別図柄1表示図柄カウンタのカウンタ値を示し、変数「R_TZ2_DSP」は、特別図柄2表示図柄カウンタのカウンタ値を示し、変数「R_EXT_SEC_TMR」はセキュリティ外部信号タイマ値を示す。なお、図135(d)に示す変数の配置は図のように連続している必要はなく、離隔していてもよい。 Here, in FIG. 135(c) and FIG. 135(d), the variable "R_TZ1_STP" indicates the special symbol 1 stop symbol number, the variable "R_TZ2_STP" indicates the special symbol 2 stop symbol number, the variable "R_TZ1_DSP" indicates the counter value of the special symbol 1 display symbol counter, the variable "R_TZ2_DSP" indicates the counter value of the special symbol 2 display symbol counter, and the variable "R_EXT_SEC_TMR" indicates the security external signal timer value. Note that the arrangement of the variables shown in FIG. 135(d) does not need to be contiguous as shown in the figure, and they may be spaced apart.

続いて、図135(b)の6行目のコマンド「DJNZ RAMSET_10」によって、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0でなければ、アドレス「RAMSET_10」に移動し、デクリメントした結果が0であれば、当該コマンドの次のコマンドに処理を移す。ここでは、データ数が「5」なので、「RAMSET_10」からの処理を5回繰り返すとBレジスタの値が0となる。かかる6行目のコマンドが、図134(b)のステップS5に対応する。そして、7行目のコマンド「RET」によって、1段上のルーチンに戻る。かかる7行目のコマンドが、図134(b)のステップS6に対応する。 Next, the command "DJNZ RAMSET_10" on line 6 of Fig. 135(b) decrements the value of the B register (subtracts "1"), and if the result of the decrement is not 0, it moves to address "RAMSET_10", and if the result of the decrement is 0, it moves to the next command after that command. In this case, the number of data items is "5", so the value of the B register becomes 0 after repeating the process from "RAMSET_10" five times. This command on line 6 corresponds to step S5 in Fig. 134(b). Then, the command "RET" on line 7 returns to the routine one level above. This command on line 7 corresponds to step S6 in Fig. 134(b).

こうして、図136に示すように、メインROM300bのプログラムデータに記述された複数の1バイト値(55H、77H、66H、22H、AAH)を、メインRAM300cのワークエリアにおける変数(「R_TZ1_STP」、「R_TZ2_STP」、「R_TZ1_DSP」、「R_TZ2_DSP」、「R_EXT_SEC_TMR」)に転送することが可能となる。 In this way, as shown in FIG. 136, it becomes possible to transfer multiple 1-byte values (55H, 77H, 66H, 22H, AAH) written in the program data of main ROM 300b to variables ("R_TZ1_STP", "R_TZ2_STP", "R_TZ1_DSP", "R_TZ2_DSP", "R_EXT_SEC_TMR") in the work area of main RAM 300c.

RAMSETモジュールは、複数のモジュールからサブルーチンとして呼び出される。例えば、図22のステップS100で示したCPU初期化処理を実行するCPUINITモジュール、セキュリティ設定処理を実行するSEC_SETモジュール、図26のステップS400-21で示した状態管理処理(エラー管理処理)を実行するSTC_PRCモジュール、図52のステップS810で示した普通図柄変動待ち処理を実行するFZ_STAモジュール、図53のステップS820で示した普通図柄変動中処理を実行するFZ_SPNモジュール、図54のステップS830で示した普通図柄停止図柄表示処理を実行するFZ_STPモジュール、図55のステップS840で示した普通電動役物入賞口開放前処理を実行するFD_PREモジュール、図57のステップS850で示した普通電動役物入賞口開放制御処理を実行するFD_OPNモジュール、図37のステップS610で示した特別図柄変動待ち処理を実行するTZ_STAモジュール、図41のステップS620で示した特別図柄変動中処理を実行するTZ_SPNモジュール、図43のステップS630で示した特別図柄停止図柄表示処理を実行するTZ_STPモジュール、図45のステップS710で示した大入賞口開放前処理を実行するTD_PREモジュール、図47のステップS720で示した大入賞口開放制御処理を実行するTD_OPNモジュール、図48のステップS730で示した大入賞口閉鎖有効処理を実行するTD_EFFモジュール、図49のステップ740で示した大入賞口終了ウェイト処理を実行するTD_ENDモジュール、図43のステップS630の中で実行される特別図柄変動待ち状態移行処理(図示せず)を実行するTOKZEROモジュール、図40のステップS613で示した回数切り管理処理を実行するCHGSTSモジュール、図27のステップS450で示した設定関連処理を実行するRNK_PRCモジュール等から呼び出される。 The RAMSET module is called as a subroutine from multiple modules. For example, a CPUINIT module that executes the CPU initialization process shown in step S100 of FIG. 22, a SEC_SET module that executes the security setting process, an STC_PRC module that executes the state management process (error management process) shown in step S400-21 of FIG. 26, an FZ_STA module that executes the normal symbol change waiting process shown in step S810 of FIG. 52, an FZ_SPN module that executes the normal symbol change during process shown in step S820 of FIG. 53, an FZ_STP module that executes the normal symbol stop symbol display process shown in step S830 of FIG. 54, an FD_PRE module that executes the normal electric role opening pre-opening process shown in step S840 of FIG. 55, an FD_OPN module that executes the normal electric role opening control process shown in step S850 of FIG. 57, a TZ_STA module that executes the special symbol change waiting process shown in step S610 of FIG. It is called from the TZ_SPN module which executes the special symbol change processing shown in step S620 of FIG. 43, the TZ_STP module which executes the special symbol stop symbol display processing shown in step S630 of FIG. 43, the TD_PRE module which executes the large prize opening pre-opening processing shown in step S710 of FIG. 45, the TD_OPN module which executes the large prize opening opening control processing shown in step S720 of FIG. 47, the TD_EFF module which executes the large prize opening closing enable processing shown in step S730 of FIG. 48, the TD_END module which executes the large prize opening end wait processing shown in step 740 of FIG. 49, the TOKZERO module which executes the special symbol change waiting state transition processing (not shown) executed in step S630 of FIG. 43, the CHGSTS module which executes the number cut management processing shown in step S613 of FIG. 40, the RNK_PRC module which executes the setting related processing shown in step S450 of FIG. 27, etc.

このように、図135(b)に示したRAMSETモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LD B,(HL)」1バイト+4行目のコマンド「INLD AC,(HL)」2バイト+5行目のコマンド「LDQ (C),A」2バイト+6行目のコマンド「DJNZ RAMSET_10」2バイト+7行目のコマンド「RET」1バイト=8バイトとなり、総実行サイクルは、2行目2サイクル+4行目4サイクル+5行目3サイクル+6行目3サイクル(または2サイクル)+7行目3サイクル=15サイクル(または14サイクル)となる。なお、括弧内のサイクル数は、コマンド「DJNZ RAMSET_10」によって移動しなかった場合の実行サイクルを示している。かかるRAMSETモジュールを設けることによって、上述した各モジュール内でラムセット処理を行うことなく、コマンドサイズ1バイトのコマンド「RST RAMSET」で賄うことができるので、コマンドの短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Thus, the total command size of the commands of the RAMSET module shown in Fig. 135(b) is 1 byte of the command "LD B, (HL)" on line 2 + 2 bytes of the command "INLD AC, (HL)" on line 4 + 2 bytes of the command "LDQ (C), A" on line 5 + 2 bytes of the command "DJNZ RAMSET_10" on line 6 + 1 byte of the command "RET" on line 7 = 8 bytes, and the total execution cycles are 2 cycles on line 2 + 4 cycles on line 4 + 3 cycles on line 5 + 3 cycles (or 2 cycles) on line 6 + 3 cycles on line 7 = 15 cycles (or 14 cycles). Note that the number of cycles in parentheses indicates the execution cycles when there is no movement by the command "DJNZ RAMSET_10". By providing such a RAMSET module, it is possible to use the 1-byte command "RST RAMSET" without having to perform RAMset processing within each of the above-mentioned modules, shortening the command and making it possible to secure the capacity of the control area for performing game control processing.

図137は、RAMSETモジュールを実現するためのコマンドの他の例を説明するための説明図である。ここでは、図135(b)のRAMSETモジュールのコマンド群を図137(b)のRAMSETモジュールのコマンド群に置き換えており、他の、図135(a)のRAMSETモジュールを呼び出す任意の処理のコマンド群、図135(c)のメインROM300bのプログラムデータにおける1バイトデータ群、および、図135(d)のメインRAM300cのワークエリアにおける1バイトデータ群は、図137(a)、図137(c)、図137(d)として、そのまま用いている。ここでは、図137(a)、図137(c)、図137(d)のように、図135(a)、図135(c)、図135(d)と実質的に等しい処理についてはその説明を省略し、図137(b)の異なる処理のみを説明する。 Figure 137 is an explanatory diagram for explaining another example of commands for realizing the RAMSET module. Here, the commands of the RAMSET module in Figure 135(b) are replaced with the commands of the RAMSET module in Figure 137(b), and the commands of any other process that calls the RAMSET module in Figure 135(a), the 1-byte data group in the program data of the main ROM 300b in Figure 135(c), and the 1-byte data group in the work area of the main RAM 300c in Figure 135(d) are used as they are in Figures 137(a), 137(c), and 137(d). Here, as in Figures 137(a), 137(c), and 137(d), the description of the processes that are substantially the same as those in Figures 135(a), 135(c), and 135(d) is omitted, and only the different processes in Figure 137(b) are described.

図137(b)の1行目の指標「RAMSET:」は、当該RAMSETモジュールの先頭アドレスを示す。2行目のコマンド「LD B,(HL)」によって、HLレジスタで示されるアドレスに格納された1バイト値がBレジスタに読み出される。このとき、HLレジスタには、図137(a)で示したように、アドレス「D_RAM_RST_INI」が設定されている。したがって、図137(c)の2行目の1バイト値「(@D_RAM_RST_INI-D_RAM_RST_INI-1)/2」がデータ数としてBレジスタに読み出される。かかる図137(b)の2行目のコマンドが、図134(b)のステップS3に対応する。 The index "RAMSET:" on the first line of Figure 137(b) indicates the starting address of the RAMSET module. The command "LD B, (HL)" on the second line causes the one-byte value stored in the address indicated by the HL register to be read into the B register. At this time, the address "D_RAM_RST_INI" is set in the HL register, as shown in Figure 137(a). Therefore, the one-byte value "(@D_RAM_RST_INI-D_RAM_RST_INI-1)/2" on the second line of Figure 137(c) is read into the B register as the number of data. This command on the second line of Figure 137(b) corresponds to step S3 in Figure 134(b).

図137(b)の3行目のコマンド「INLDTQR AC,(HL)」によって、HLレジスタに「1」を加えた値で示されるアドレスに格納された値で特定されるアドレスに、HLレジスタに「2」を加えた値で示されるアドレスに格納された値が転送され、HLレジスタの値に「2」を加えて次に転送するアドレスが設定され、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0になるまで、当該処理が繰り返される。かかる3行目のコマンドが、図134(b)のステップS4、S5に対応する。 The command "INLDTQR AC, (HL)" on the third line of Figure 137(b) transfers the value stored in the address indicated by the value stored in the address indicated by the value stored in the HL register plus "1" to the address specified by the value stored in the address indicated by the value stored in the HL register plus "1", adds "2" to the value of the HL register to set the next transfer address, decrements the value of the B register (subtracts "1"), and repeats this process until the decrement result becomes 0. This command on the third line corresponds to steps S4 and S5 in Figure 134(b).

ここで、コマンド「INLDTQR AC,(HL)」は、Qレジスタの値をアドレスの上位1バイトとし、HLレジスタに「1」を加えた値で示されるアドレスに格納された値をアドレスの下位1バイトとし、そのアドレスに、HLレジスタに「2」を加えた値で示されるアドレスに格納された値を転送し、HLレジスタの値に「2」を加えてHLレジスタの値を更新し、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0になるまで、値の転送を繰り返すコマンドである。かかるコマンドのコマンドサイズは「2」であり、実行サイクルは「5」である。 Here, the command "INLDTQR AC, (HL)" sets the value of the Q register to the upper byte of the address, sets the value stored at the address indicated by adding "1" to the HL register to the lower byte of the address, transfers the value stored at the address indicated by adding "2" to the HL register to that address, updates the HL register by adding "2", decrements the value of the B register (subtracts "1"), and repeats the value transfer until the decrement result becomes 0. The command size of this command is "2", and the execution cycle is "5".

例えば、HLレジスタがアドレス「D_RAM_RST_INI」の値であった場合、Qレジスタの値をアドレスの上位1バイトとし、図137(c)の3行目における「R_TZ1_STP」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに、図137(c)の3行目における「@DSP_HAZ」の値が転送され、HLレジスタの値に「2」が加えられ、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0になるまで、すなわち、5回転送が繰り返される。 For example, if the HL register contains the value of the address "D_RAM_RST_INI", the value of the Q register becomes the most significant byte of the address, the value of the least significant byte of "R_TZ1_STP" on the third line of Figure 137(c) becomes the most significant byte of the address, the value of "@DSP_HAZ" on the third line of Figure 137(c) is transferred to that address, "2" is added to the value of the HL register, and the value of the B register is decremented ("1" is subtracted), and the transfer is repeated until the result of the decrement becomes 0, that is, five times.

そして、図137(b)の4行目のコマンド「RET」によって、1段上のルーチンに戻る。かかる4行目のコマンドが、図134(b)のステップS6に対応する。 Then, the "RET" command on the fourth line of FIG. 137(b) returns to the routine one level above. This command on the fourth line corresponds to step S6 in FIG. 134(b).

図137(b)のRAMSETモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LD B,(HL)」1バイト+3行目のコマンド「INLDTQR AC,(HL)」2バイト+4行目のコマンド「RET」1バイト=4バイトとなり、総実行サイクルは、2行目2サイクル+3行目5サイクル+4行目3サイクル=10サイクルとなる。したがって、図135(b)の場合と比べ、総コマンドサイズが4バイト削減され、総実行サイクルも少なくとも4サイクル削減される。特に、図135(b)の例では、コマンド「DJNZ RAMSET_10」におけるBレジスタの値が2以上であれば、その値に10サイクル(4行目4サイクル+5行目3サイクル+6行目3サイクル)を乗じた分だけ総実行サイクルが増えるので、図137(b)の総実行サイクルの削減量も多くなる。かかるRAMSETモジュールによって、コマンドの更なる短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 The total command size of the commands in the RAMSET module in FIG. 137(b) is 1 byte of the command "LD B, (HL)" on the second line + 2 bytes of the command "INLDTQR AC, (HL)" on the third line + 1 byte of the command "RET" on the fourth line = 4 bytes, and the total execution cycles are 2 cycles on the second line + 5 cycles on the third line + 3 cycles on the fourth line = 10 cycles. Therefore, compared to the case of FIG. 135(b), the total command size is reduced by 4 bytes, and the total execution cycles are also reduced by at least 4 cycles. In particular, in the example of FIG. 135(b), if the value of the B register in the command "DJNZ RAMSET_10" is 2 or more, the total execution cycles increase by 10 cycles (4 cycles on the fourth line + 3 cycles on the fifth line + 3 cycles on the sixth line), so the reduction in the total execution cycles in FIG. 137(b) is also large. This RAMSET module makes it possible to further shorten commands and reduce processing load, while ensuring sufficient control area capacity for game control processing.

また、ここでは、図135の例と比較して、AレジスタおよびCレジスタを利用していない。したがって、Aレジスタの値やCレジスタの値を意図せず更新してしまうことはない。また、図135の例では、AレジスタやCレジスタが既に利用されている場合、スタックしてAレジスタやCレジスタの値を退避する必要があったが、ここでは、AレジスタやCレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 In addition, unlike the example in Figure 135, the A register and C register are not used here. Therefore, the values in the A register and C register will not be updated unintentionally. Also, in the example in Figure 135, if the A register or C register was already in use, it was necessary to save the values in the A register and C register by stacking them, but here, since the A register and C register are not used, stack processing is not required. In this way, resources can be used efficiently.

また、図135(b)と図137(b)とを比較して理解できるように、図135(b)において4行(3行目~6行目)を占有していたコマンド群を、図137(b)においては1行(3行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing FIG. 135(b) with FIG. 137(b), the command group that occupies four lines (lines 3 to 6) in FIG. 135(b) can be represented in one line (line 3) in FIG. 137(b), making it possible to reduce the number of commands and lighten the design load.

なお、かかるRAMSETモジュールは、パチンコ機のみならず、スロットマシンにおいても、メインRAM500cの変数に所定の値(初期値)を設定するためのテーブルセット処理を実行するTABLSETモジュール(汎用モジュール)として利用されている。 This RAMSET module is used not only in pachinko machines but also in slot machines as a TABLESET module (general-purpose module) that executes table set processing to set predetermined values (initial values) to variables in the main RAM 500c.

図138は、TABLSETモジュールを実現するためのコマンドの一例を説明するための説明図である。このうち、図138(a)は、TABLSETモジュールを呼び出す任意の処理のコマンド群を示し、図138(b)は、TABLSETモジュールのコマンド群を示し、図138(c)は、メインROM500bのプログラムデータにおける1バイトデータ群の配置を示し、図138(d)は、メインRAM500cのワークエリアにおける1バイトデータ群の配置を示す。 Figure 138 is an explanatory diagram for explaining an example of a command for implementing a TABLESET module. Of these, Figure 138(a) shows a command group for an arbitrary process that calls the TABLESET module, Figure 138(b) shows a command group for the TABLESET module, Figure 138(c) shows the arrangement of a 1-byte data group in the program data of main ROM 500b, and Figure 138(d) shows the arrangement of a 1-byte data group in the work area of main RAM 500c.

なお、ここでは、任意の処理として、図89のステップS2200-11や図95のステップS2800-39で示したエラーウェイト処理、すなわち、エラー表示、警告音要求およびエラー復帰待ちを実行するERRWAITモジュールの一部を挙げている。 Note that the optional processing here includes the error wait processing shown in step S2200-11 in FIG. 89 and step S2800-39 in FIG. 95, i.e., a part of the ERRWAIT module that displays an error, requests an alarm sound, and waits for recovery from an error.

図138(a)の1行目のコマンド「LD HL,T_ERR_RCV」によって、転送元となる1バイトデータ群の先頭アドレス「T_ERR_RCV」をHLレジスタに設定する。そして、2行目のコマンド「RST TABLSET」によって、サブルーチンとしてTABLSETモジュールが呼び出される。 The command "LD HL, T_ERR_RCV" on the first line of Figure 138(a) sets the starting address "T_ERR_RCV" of the 1-byte data group that will be the transfer source in the HL register. Then, the command "RST TABLESET" on the second line calls the TABLESET module as a subroutine.

図138(b)の1行目の指標「TABLSET:」は、当該TABLSETモジュールの先頭アドレスを示す。2行目のコマンド「PUSH BC」によって、BCレジスタの値がスタック領域に退避される。3行目のコマンド「DI」によって割込が禁止される。 The index "TABLESET:" on the first line of Figure 138(b) indicates the starting address of the TABLESET module. The command "PUSH BC" on the second line saves the value of the BC register to the stack area. The command "DI" on the third line disables interrupts.

図138(b)の4行目のコマンド「LD B,(HL)」によって、HLレジスタで示されるアドレスに格納された1バイト値がBレジスタに読み出される。このとき、HLレジスタには、図138(a)で示したように、アドレス「T_ERR_RCV」が設定されている。したがって、図138(c)の2行目の1バイト値「(T_ERR_RCV_-T_ERR_RCV)/2」がデータ数(転送の繰り返し数)としてBレジスタに読み出されることとなる。なお、「T_ERR_RCV_」は、転送元となる1バイトデータ群の最終アドレスの次のアドレスであり、T_ERR_RCVは転送元となる1バイトデータ群の先頭アドレスなので、T_ERR_RCV_-T_ERR_RCVの値(データ数を示す1バイト値)の値が、1バイト値の総バイト数となり、その値を、アドレスと値との組み合わせ数である2で除算すると、データ数が導出される。図138(c)の例では、データ数は、9/2=4となる。 The command "LD B, (HL)" on the fourth line of Fig. 138(b) reads the one-byte value stored in the address indicated by the HL register into the B register. At this time, the address "T_ERR_RCV" is set in the HL register as shown in Fig. 138(a). Therefore, the one-byte value "(T_ERR_RCV_-T_ERR_RCV)/2" on the second line of Fig. 138(c) is read into the B register as the number of data (number of transfer iterations). Note that "T_ERR_RCV_" is the address next to the last address of the one-byte data group that is the transfer source, and T_ERR_RCV is the first address of the one-byte data group that is the transfer source, so the value of T_ERR_RCV_-T_ERR_RCV (the one-byte value indicating the number of data) is the total number of bytes of the one-byte value, and the number of data is derived by dividing this value by 2, which is the number of combinations of addresses and values. In the example of Figure 138 (c), the number of data items is 9/2 = 4.

図138(b)の5行目の指標「TABLSET10:」は繰り返し処理の先頭アドレスを示す。6行目のコマンド「INLD AC,(HL)」および7行目のコマンド「LDQ (C),A」によって、HLレジスタに「1」を加えた値で示されるアドレスに格納された値で特定されるアドレスに、HLレジスタに「2」を加えた値で示されるアドレスに格納された値が格納され、HLレジスタの値に「2」が加えられて次に転送するアドレスが設定される。 The index "TABLESET10:" on the fifth line of Figure 138(b) indicates the start address of the repeat process. The command "INLD AC, (HL)" on the sixth line and the command "LDQ (C), A" on the seventh line store the value stored in the address indicated by adding "2" to the HL register into the address specified by the value stored in the address indicated by adding "1" to the HL register, and "2" is added to the value of the HL register to set the address to be transferred next.

例えば、HLレジスタがアドレス「T_ERR_RCV」の値であった場合、図138(c)の3行目における2バイト変数「_ERR_NUM」の下位1バイト値がCレジスタに格納され、図138(c)の3行目における「0」の値がAレジスタに格納される。 For example, if the HL register contains the value of address "T_ERR_RCV", the value of the lowest byte of the 2-byte variable "_ERR_NUM" on the third line of Figure 138(c) is stored in the C register, and the value "0" on the third line of Figure 138(c) is stored in the A register.

また、図138(b)の7行目のコマンド「LDQ (C),A」は、Qレジスタの値をアドレスの上位1バイトとし、Cレジスタの値をアドレスの下位1バイトとし、そのアドレスに、Aレジスタの値を格納するコマンドである。 The command "LDQ (C), A" on line 7 of Figure 138(b) is a command that stores the value of the A register at the address with the value of the Q register as the upper byte of the address and the value of the C register as the lower byte of the address.

例えば、Cレジスタの値、すなわち「_ERR_NUM」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに、Aレジスタの値、すなわち、「0」の値を格納する。 For example, the value of the C register, i.e., the value of the lowest byte of "_ERR_NUM", is set as the lowest byte of the address, and the value of the A register, i.e., the value "0", is stored at that address.

ここで、図138(c)、図138(d)において、変数「_ERR_NUM」は、エラー番号を示し、変数「_CRE_TMR」は、クレジットボタン検出タイマを示し、変数「_CRE_FLG」は、クレジットボタン検出フラグを示し、変数「_SNS_OLD」はメダル通過センサービット前回状態を示す。なお、図138(d)に示す変数の配置は図のように連続している必要はなく、離隔していてもよい。 Here, in Figures 138(c) and 138(d), the variable "_ERR_NUM" indicates the error number, the variable "_CRE_TMR" indicates the credit button detection timer, the variable "_CRE_FLG" indicates the credit button detection flag, and the variable "_SNS_OLD" indicates the previous state of the medal passage sensor bit. Note that the arrangement of the variables shown in Figure 138(d) does not need to be contiguous as shown in the figure, and they may be spaced apart.

続いて、図138(b)の8行目のコマンド「DJNZ TABLSET10」によって、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0でなければ、アドレス「TABLSET10」に移動し、デクリメントした結果が0であれば、当該コマンドの次のコマンドに処理を移す。ここでは、データ数が「4」なので、「TABLSET10」からの処理を4回繰り返すとBレジスタの値が0となる。 Next, the command "DJNZ TABLESET10" on line 8 of Figure 138(b) decrements the value of the B register (subtracts "1"), and if the result of the decrement is not 0, it moves to address "TABLESET10", and if the result of the decrement is 0, it moves to the next command after that command. In this case, the number of data items is "4", so if the process from "TABLESET10" is repeated four times, the value of the B register will become 0.

図138(b)の9行目のコマンド「EI」によって割込が許可される。10行目のコマンド「POP BC」によってスタック領域に退避されていたデータがBCレジスタに復帰される。そして、11行目のコマンド「RET」によって、1段上のルーチンに戻る。 The command "EI" on line 9 of Figure 138(b) allows interrupts. The command "POP BC" on line 10 restores the data saved in the stack area to the BC register. Then, the command "RET" on line 11 returns to the routine one level above.

ここで、コマンド「INLDTQR」への置き換えを行うと、コマンド群を以下のように記述できる。 If you replace it with the command "INLDTQR", the command group can be written as follows.

図139は、TABLSETモジュールを実現するためのコマンドの他の例を説明するための説明図である。ここでは、図138(b)のTABLSETモジュールのコマンド群を、図139(b)のTABLSETモジュールのコマンド群に置き換えており、他の、図138(a)のTABLSETモジュールを呼び出す任意の処理のコマンド群、図138(c)のメインROM500bのプログラムデータにおける1バイトデータ群、および、図138(d)のメインRAM500cのワークエリアにおける1バイトデータ群は、図139(a)、図139(c)、図139(d)として、そのまま用いている。ここでは、図139(a)、図139(c)、図139(d)のように、図138(a)、図138(c)、図138(d)と実質的に等しい処理についてはその説明を省略し、図139(b)の異なる処理のみを説明する。 Figure 139 is an explanatory diagram for explaining another example of commands for realizing the TABLESET module. Here, the commands of the TABLESET module in Figure 138(b) are replaced with the commands of the TABLESET module in Figure 139(b), and the commands of any other process that calls the TABLESET module in Figure 138(a), the 1-byte data group in the program data of the main ROM 500b in Figure 138(c), and the 1-byte data group in the work area of the main RAM 500c in Figure 138(d) are used as they are in Figures 139(a), 139(c), and 139(d). Here, as in Figures 139(a), 139(c), and 139(d), the description of the processes that are substantially the same as those in Figures 138(a), 138(c), and 138(d) is omitted, and only the different processes in Figure 139(b) are described.

図139(b)の1行目の指標「TABLSET:」は、当該TABLSETモジュールの先頭アドレスを示す。2行目のコマンド「PUSH BC」によって、BCレジスタの値がスタック領域に退避される。3行目のコマンド「DI」によって割込が禁止される。 The index "TABLESET:" on the first line of Figure 139(b) indicates the starting address of the TABLESET module. The command "PUSH BC" on the second line saves the value of the BC register to the stack area. The command "DI" on the third line disables interrupts.

図139(b)の4行目のコマンド「LD B,(HL)」によって、HLレジスタで示されるアドレスに格納された1バイト値がBレジスタに読み出される。このとき、HLレジスタには、図139(a)で示したように、アドレス「T_ERR_RCV」が設定されている。したがって、図139(c)の2行目の1バイト値「(T_ERR_RCV_-T_ERR_RCV)/2」がデータ数(転送の繰り返し数)としてBレジスタに読み出されることとなる。図139(c)の例では、データ数は4となる。 The command "LD B, (HL)" on the fourth line of Figure 139(b) reads a one-byte value stored in the address indicated by the HL register into the B register. At this time, the address "T_ERR_RCV" is set in the HL register, as shown in Figure 139(a). Therefore, the one-byte value "(T_ERR_RCV_-T_ERR_RCV)/2" on the second line of Figure 139(c) is read into the B register as the number of data (number of transfer repetitions). In the example of Figure 139(c), the number of data is 4.

図139(b)の5行目のコマンド「INLDTQR (HL)」によって、HLレジスタに「1」を加えた値で示されるアドレスに格納された値で特定されるアドレスに、HLレジスタに「2」を加えた値で示されるアドレスに格納された値が転送され、HLレジスタの値に「2」を加えて次に転送するアドレスが設定され、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0になるまで、当該処理が繰り返される。 The command "INLDTQR (HL)" on the fifth line of Figure 139 (b) transfers the value stored in the address indicated by the value stored in the address indicated by the value stored in the HL register plus "1" to the address specified by the value stored in the address indicated by the value stored in the HL register plus "1", adds "2" to the value of the HL register to set the next transfer address, decrements the value of the B register (subtracts "1"), and repeats this process until the result of the decrement becomes 0.

続いて、図139(b)の6行目のコマンド「EI」によって割込が許可される。7行目のコマンド「POP BC」によってスタック領域に退避されていたデータがBCレジスタに復帰される。そして、8行目のコマンド「RET」によって、1段上のルーチンに戻る。 Next, interrupts are permitted by the command "EI" on line 6 of Figure 139(b). The command "POP BC" on line 7 restores the data saved in the stack area to the BC register. Then, the command "RET" on line 8 returns to the routine one level above.

ここで、図138(b)に示したTABLSETモジュールのコマンドの総コマンドサイズは、2行目のコマンド「PUSH BC」1バイト+3行目のコマンド「DI」1バイト+4行目のコマンド「LD B,(HL)」1バイト+6行目のコマンド「INLD AC,(HL)」2バイト+7行目のコマンド「LDQ (C),A」2バイト+8行目のコマンド「DJNZ TABLSET10」2バイト+9行目のコマンド「EI」1バイト+10行目のコマンド「POP BC」1バイト+11行目のコマンド「RET」1バイト=12バイトとなり、総実行サイクルは、2行目3サイクル+3行目1サイクル+4行目2サイクル+6行目4サイクル+7行目3サイクル+8行目3サイクル(または2サイクル)+9行目1サイクル+10行目3サイクル+11行目3サイクル=23サイクル(または22サイクル)となる。一方、図139(b)に示したTABLSETモジュールのコマンドの総コマンドサイズは、2行目のコマンド「PUSH BC」1バイト+3行目のコマンド「DI」1バイト+4行目のコマンド「LD B,(HL)」1バイト+5行目のコマンド「INLDTQR (HL)」2バイト+6行目のコマンド「EI」1バイト+7行目のコマンド「POP BC」1バイト+8行目のコマンド「RET」1バイト=8バイトとなり、総実行サイクルは、2行目3サイクル+3行目1サイクル+4行目2サイクル+5行目5サイクル+6行目1サイクル+7行目3サイクル+8行目3サイクル=18サイクルとなる。したがって、図138(b)の場合と比べ、総コマンドサイズが4バイト削減され、総実行サイクルも少なくとも5サイクル削減される。特に、図138(b)の例では、コマンド「DJNZ TABLSET10」におけるBレジスタの値が2以上であれば、その値に10サイクル(6行目4サイクル+7行目3サイクル+8行目3サイクル)を乗じた分だけ総実行サイクルが増えるので、図139(b)の総実行サイクルの削減量も多くなる。かかるTABLSETモジュールによって、コマンドの短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the commands in the TABLESET module shown in FIG. 138(b) is: 1 byte of the command "PUSH BC" on the second line + 1 byte of the command "DI" on the third line + 1 byte of the command "LD B, (HL)" on the fourth line + 2 bytes of the command "INLD AC, (HL)" on the sixth line + 2 bytes of the command "LDQ (C), A" on the seventh line + 2 bytes of the command "DJNZ TABLESET10" on the eighth line + 1 byte of the command "EI" on the ninth line + 1 byte of the command "POP The total number of execution cycles is 3 cycles on line 2 + 1 cycle on line 3 + 2 cycles on line 4 + 4 cycles on line 6 + 3 cycles on line 7 + 3 cycles (or 2 cycles) on line 8 + 1 cycle on line 9 + 3 cycles on line 10 + 3 cycles on line 11 = 23 cycles (or 22 cycles). On the other hand, the total command size of the commands of the TABLESET module shown in Fig. 139(b) is 1 byte of the command "PUSH BC" on the second line + 1 byte of the command "DI" on the third line + 1 byte of the command "LD B, (HL)" on the fourth line + 2 bytes of the command "INLDTQR (HL)" on the fifth line + 1 byte of the command "EI" on the sixth line + 1 byte of the command "POP BC" on the seventh line + 1 byte of the command "RET" on the eighth line = 8 bytes, and the total execution cycles are 3 cycles on the second line + 1 cycle on the third line + 2 cycles on the fourth line + 5 cycles on the fifth line + 1 cycle on the sixth line + 3 cycles on the seventh line + 3 cycles on the eighth line = 18 cycles. Therefore, compared with the case of Fig. 138(b), the total command size is reduced by 4 bytes, and the total execution cycles are also reduced by at least 5 cycles. In particular, in the example of FIG. 138(b), if the value of the B register in the command "DJNZ TABLESET10" is 2 or more, the total execution cycles increase by 10 cycles (4 cycles on line 6 + 3 cycles on line 7 + 3 cycles on line 8) multiplied by that value, so the reduction in the total execution cycles in FIG. 139(b) also increases. This TABLESET module shortens commands and reduces the processing load, making it possible to secure the capacity of the control area for performing game control processing.

また、ここでは、図138の例と比較して、AレジスタおよびCレジスタを利用していない。したがって、Aレジスタの値やCレジスタの値を意図せず更新してしまうことはない。また、図138の例では、AレジスタやCレジスタが既に利用されている場合、スタックしてAレジスタやCレジスタの値を退避する必要があったが、ここでは、AレジスタやCレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 In addition, unlike the example in FIG. 138, the A register and C register are not used here. Therefore, the values in the A register and C register will not be updated unintentionally. Also, in the example in FIG. 138, if the A register or C register was already in use, it was necessary to save the values in the A register and C register by stacking them, but here, since the A register and C register are not used, stack processing is not required. In this way, resources can be used efficiently.

また、図138(b)と図139(b)とを比較して理解できるように、図138(b)において4行(5行目~8行目)を占有していたコマンド群を、図139(b)においては1行(5行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing FIG. 138(b) and FIG. 139(b), the command group that occupies four lines (lines 5 to 8) in FIG. 138(b) can be represented in one line (line 5) in FIG. 139(b), making it possible to reduce the number of commands and lighten the design load.

なお、TABLSETモジュールは、ERRWAITモジュールのみならず、複数のモジュールからサブルーチンとして呼び出される。例えば、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、本前兆中処理(AT状態=「3」)を実行するHID_LOTモジュール、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、終了画面中処理(AT状態=「4」)を実行するFIN_LOTモジュール、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、準備中処理(AT状態=「5」)を実行するPRE_LOTモジュール、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、REG中処理(AT状態=「6」)を実行するREG_LOTモジュール、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、BIG中処理(AT状態=「7」)を実行するBIG_LOTモジュール、図85のステップS2020で示した設定値切り替え処理を実行するRANKSETモジュール、図91のステップS2400で示した図柄コード設定処理を実行するFGSETUPモジュール、図96のステップS2900で示した遊技移行処理を実行するGAMESETモジュール、図96のステップS2900-3で示した役物作動図柄表示処理を実行するJCGMSETモジュール等から呼び出される。 The TABLESET module is called as a subroutine not only by the ERRWAIT module, but also by multiple other modules. For example, the EXE_SET module, which executes the execution flag setting process shown in step S2400-11 in FIG. 91, selectively transitions depending on the game state and presentation state in the EXE_SET module, which executes the execution flag setting process shown in step S2400-11 in FIG. 91, and executes the premonition process (AT state = "3"); the FIN_LOT module, which executes the execution flag setting process shown in step S2400-11 in FIG. 91, selectively transitions depending on the game state and presentation state in the EXE_SET module, which executes the execution flag setting process shown in step S2400-11 in FIG. 91, and executes the end screen process (AT state = "4"); the PRE_LOT module, which executes the execution flag setting process shown in step S2400-11 in FIG. 91, selectively transitions depending on the game state and presentation state in the EXE_SET module, which executes the execution flag setting process shown in step S2400-11 in FIG. 91, and executes the preparation process (AT state = "5"); It is called from the REG_LOT module, which selectively transitions in accordance with the game state and presentation state in the EXE_SET module, and executes REG processing (AT state = "6"); the BIG_LOT module, which selectively transitions in accordance with the game state and presentation state in the EXE_SET module, which executes the execution flag setting process shown in step S2400-11 in FIG. 91, and executes BIG processing (AT state = "7"); the RANKSET module, which executes the setting value switching process shown in step S2020 in FIG. 85; the FGSETUP module, which executes the symbol code setting process shown in step S2400 in FIG. 91; the GAMESET module, which executes the game transition process shown in step S2900 in FIG. 96; and the JCGMSET module, which executes the role-operating symbol display process shown in step S2900-3 in FIG. 96.

<コマンド「DECM」、「DECWM」>
BYTEDECモジュールは、バイトカウンタ減算処理、すなわち、メインRAM300cの1バイト変数を1だけデクリメントするための汎用モジュールである。なお、BYTEDECモジュールでは、デクリメントのみならず、デクリメントした結果、ゼロフラグおよびキャリーフラグを設定している。
<Command "DECM", "DECWM">
The BYTEDEC module is a general-purpose module for byte counter subtraction processing, that is, for decrementing a 1-byte variable in the main RAM 300c by 1. Note that the BYTEDEC module not only decrements, but also sets a zero flag and a carry flag as a result of the decrement.

メインCPU300aは、メインROM300bからプログラムを読み出し、読み出したプログラムを遂行し、任意の処理において、サブルーチンとしてBYTEDECモジュールを呼び出し、BYTEDECモジュールを遂行する。BYTEDECモジュールでは、メインRAM300cに保持された1バイト値をデクリメントする。 The main CPU 300a reads a program from the main ROM 300b, executes the read program, and in any process, calls the BYTEDEC module as a subroutine and executes the BYTEDEC module. The BYTEDEC module decrements a one-byte value stored in the main RAM 300c.

図140は、BYTEDECモジュールの具体的な処理を示したフローチャートである。ここでは、任意の処理として、図43のステップS630で示した特別図柄停止図柄表示処理を実行するTZ_STPモジュールの一部を挙げて説明する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。また、当該BYTEDECモジュールの説明中、所定のレジスタはHLレジスタである。 Figure 140 is a flow chart showing the specific processing of the BYTEDEC module. Here, as an optional process, a part of the TZ_STP module that executes the special symbol stop symbol display process shown in step S630 of Figure 43 will be explained. The numerical values of step S in this figure will be used only in the explanation of this figure. Also, in the explanation of this BYTEDEC module, the specified register is the HL register.

メインCPU300aは、図140(a)のように、任意の処理を実行する。メインCPU300aは、まず、HLレジスタに、デクリメントの対象となる変数のアドレスを設定する(S1)。そして、サブルーチンとしてBYTEDECモジュールを呼び出す(S2)。 The main CPU 300a executes an arbitrary process as shown in FIG. 140(a). The main CPU 300a first sets the address of the variable to be decremented in the HL register (S1). Then, it calls the BYTEDEC module as a subroutine (S2).

メインCPU300aは、図140(b)のように、BYTEDECモジュールにおいて、HLレジスタで示されるアドレスに格納された1バイト値を1だけデクリメントし、かつ、ゼロフラグおよびキャリーフラグを設定する(S3)。そして、当該BYTEDECモジュールを終了して1段上のルーチンに戻る(S4)。以下、デクリメント態様とフラグの設定について詳述する。 As shown in FIG. 140(b), the main CPU 300a decrements the 1-byte value stored in the address indicated by the HL register in the BYTEDEC module by 1, and sets the zero flag and the carry flag (S3). Then, the BYTEDEC module is terminated and the process returns to the routine one step above (S4). The decrement mode and flag settings are described in detail below.

図141は、BYTEDECモジュールにおけるデクリメント態様とゼロフラグおよびキャリーフラグの設定を説明するための説明図である。ここでは、デクリメント前が1以上(1または2以上)であれば、デクリメント後は、1だけデクリメントされた値になる。ただし、デクリメント前が0であった場合、デクリメント後は-1とならず、0となる。すなわち、下限値は0であり、負の値となることはない。このような0の維持は、デクリメント前が0であった場合、デクリメントしてさらにインクリメント、または、強制的に0を読み出して実現してもよいし、デクリメントを行わないことでも実現できる。 Figure 141 is an explanatory diagram for explaining the decrement mode in the BYTEDEC module and the setting of the zero flag and carry flag. Here, if the value before the decrement is 1 or more (1 or 2 or more), the value after the decrement is decremented by 1. However, if the value before the decrement was 0, the value after the decrement will not be -1, but 0. In other words, the lower limit is 0, and it will never be a negative value. This maintenance of 0 can be achieved by decrementing and then incrementing, or forcibly reading out 0, if the value before the decrement was 0, or by not decrementing at all.

また、デクリメント前が2以上であれば、デクリメント後は1以上となるので、ゼロフラグは立たず0となるが、デクリメント前が1または0であれば、デクリメント後は0となるので、ゼロフラグが立って1となる。また、当該BYTEDECモジュールでは、デクリメント前が1であれば、デクリメント後は0となり、その場合にキャリーフラグを立たせて1とする。そして、デクリメント前が2以上または0であればキャリーフラグを立たせず0とする。 Also, if the value before the decrement was 2 or greater, it will be 1 or greater after the decrement, so the zero flag will not be set and it will be 0, but if the value before the decrement was 1 or 0, it will be 0 after the decrement, so the zero flag will be set and it will be 1. Also, in the BYTEDEC module, if the value before the decrement was 1, it will be 0 after the decrement, in which case the carry flag will be set and it will be 1. And if the value before the decrement was 2 or greater or 0, the carry flag will not be set and it will be 0.

図140(a)に戻り、BYTEDECモジュールによって、ゼロフラグおよびキャリーフラグが設定されると、メインCPU300aは、そのフラグの値を用いて様々な処理を遂行する。例えば、ここでは、デクリメントが1を減算して0とする処理ではないことを判定し(S5)、その結果、1を減算して0とする処理でなければ(S5におけるYES)、特別図柄当たりフラグチェック処理を行う所定のアドレス(TZ_STP_10)に移動し(S6)、1を減算して0とする処理であれば(S5におけるNO)、移動することなく次の処理を遂行する。 Returning to FIG. 140(a), when the zero flag and carry flag are set by the BYTEDEC module, the main CPU 300a uses the values of the flags to carry out various processes. For example, here, it is determined that the decrement is not a process of subtracting 1 to make 0 (S5), and as a result, if it is not a process of subtracting 1 to make 0 (YES in S5), it moves to a predetermined address (TZ_STP_10) that performs special symbol winning flag check processing (S6), and if it is a process of subtracting 1 to make 0 (NO in S5), it carries out the next process without moving.

図142は、BYTEDECモジュールを実現するためのコマンドの一例を説明するための説明図である。このうち、図142(a)は、BYTEDECモジュールを呼び出す任意の処理のコマンド群を示し、図142(b)は、BYTEDECモジュールのコマンド群を示す。図140で示したフローチャートは、例えば、図142に示したプログラムによって実現される。 Figure 142 is an explanatory diagram for explaining an example of commands for implementing the BYTEDEC module. Of these, Figure 142(a) shows a command group for an arbitrary process that calls the BYTEDEC module, and Figure 142(b) shows a command group for the BYTEDEC module. The flowchart shown in Figure 140 is implemented, for example, by the program shown in Figure 142.

図142(a)の1行目のコマンド「LDQ HL,LOW R_EXT_HCT」によって、Qレジスタの値をHレジスタに読み出し、アドレス「R_EXT_HCT」の下位1バイトの値をLレジスタに読み出す。かかる1行目のコマンドが、図140(a)のステップS1に対応する。そして、2行目のコマンド「CALLF BYTEDEC」によって、サブルーチンとしてBYTEDECモジュールが呼び出される。かかる2行目のコマンドが、図140(a)のステップS2に対応する。 The command "LDQ HL, LOW R_EXT_HCT" on the first line of Figure 142(a) reads the value of the Q register into the H register, and reads the value of the lowest byte of the address "R_EXT_HCT" into the L register. This command on the first line corresponds to step S1 in Figure 140(a). Then, the command "CALLF BYTEDEC" on the second line calls the BYTEDEC module as a subroutine. This command on the second line corresponds to step S2 in Figure 140(a).

ここで、コマンド「CALLF BYTEDEC」は、メモリマップのうち0000H~11FFHの範囲のみ呼び出しできるコマンドである。呼び出しに用いられるコマンド「CALLF」は通常のコマンド「CALL」と実行サイクルは「4」で等しいが、通常のコマンド「CALL」のコマンドサイズが「3」であるのに対し、コマンド「CALLF」のコマンドサイズは「2」である。したがって、プログラムの短縮化を図ることができる。なお、コマンド「CALLF BYTEDEC」の代わりに、上述した汎用モジュール同様「RST BYTEDEC」によってBYTEDECモジュールを呼び出すとしてもよい。そうすることで、コマンドサイズを「1」にすることができる。 Here, the command "CALLF BYTEDEC" can only call the range of 0000H to 11FFH in the memory map. The command "CALLF" used for calling has the same execution cycle of "4" as the normal command "CALL", but the command size of the normal command "CALL" is "3", whereas the command size of the command "CALLF" is "2". This makes it possible to shorten the program. Note that instead of the command "CALLF BYTEDEC", the BYTEDEC module can be called by "RST BYTEDEC" like the generic module mentioned above. By doing so, the command size can be made "1".

図142(b)の1行目の指標「BYTEDEC:」は、当該BYTEDECモジュールの先頭アドレスを示す。2行目のコマンド「LD A,(HL)」によって、HLレジスタで示されるアドレスに格納された1バイト値がAレジスタに読み出される。かかるコマンド「LD A,(HL)」では、その実行により第2ゼロフラグが変化する。そして、3行目のコマンド「RT Z,A」によって、Aレジスタの値が0であれば(第2ゼロフラグが1であれば)、1段上のルーチンに戻る。このとき、Aレジスタの値が0であれば、コマンド「RT Z,A」によってゼロフラグ(第1ゼロフラグ)が1となり、キャリーフラグは0となる。こうして、HLレジスタで示されるアドレスに格納された値が0であれば、デクリメントを行うことなく、ゼロフラグ=1、キャリーフラグ=0とすることができる。 The index "BYTEDEC:" on the first line of FIG. 142(b) indicates the starting address of the BYTEDEC module. The command "LD A, (HL)" on the second line reads a byte value stored in the address indicated by the HL register into the A register. Execution of this command "LD A, (HL)" changes the second zero flag. Then, the command "RT Z, A" on the third line returns to the routine one level above if the value of the A register is 0 (if the second zero flag is 1). At this time, if the value of the A register is 0, the command "RT Z, A" sets the zero flag (first zero flag) to 1 and the carry flag to 0. In this way, if the value stored in the address indicated by the HL register is 0, the zero flag can be set to 1 and the carry flag to 0 without performing a decrement.

図142(b)の4行目のコマンド「CP A,2」によって、Aレジスタの値と2が比較され、Aレジスタが2以上であれば、キャリーフラグは立たず0となり、1であれば、キャリーフラグが立って1となる。なお、コマンド「CP A,2」は、Aレジスタが2未満の場合にキャリーフラグが立つコマンドであるが、かかるコマンド「CP A,2」の実行段階では、Aレジスタの値は1か2以上のいずれかとなっているので(0ではないので)、2未満でキャリーフラグを立たせることで、結果的に1の場合にキャリーフラグが立つこととなる。こうして、Aレジスタの値が1であれば、キャリーフラグ=1とすることができる。5行目のコマンド「DEC (HL)」によって、HLレジスタで示されるアドレスに格納された1バイト値を1だけデクリメントして、HLレジスタで示されるアドレスに格納された値を更新する。ここで、HLレジスタで示されるアドレスに格納された値が2以上であれば、デクリメントした値は1以上なので、ゼロフラグは立たず0となり、1であれば、デクリメントした値が0となるので、ゼロフラグが立って1となる。なお、コマンド「DEC (HL)」によってはキャリーフラグは変化しない。こうして、HLレジスタで示されるアドレスに格納された値が2以上であれば、ゼロフラグ=0、キャリーフラグ=0とし、1であれば、ゼロフラグ=1、キャリーフラグ=1とすることができる。かかる2~5行目のコマンドが図140(b)のステップS3に対応する。そして、6行目のコマンド「RET」によって、1段上のルーチンに戻る。かかる6行目のコマンドが、図140(b)のステップS4に対応する。こうして、HLレジスタで示されるアドレスに格納された値を1だけデクリメントし、かつ、ゼロフラグおよびキャリーフラグを設定することが可能となる。 The command "CP A,2" on the fourth line of FIG. 142(b) compares the value of the A register with 2. If the A register is 2 or greater, the carry flag is not raised and becomes 0, and if the A register is 1, the carry flag is raised and becomes 1. Note that the command "CP A,2" is a command that raises the carry flag when the A register is less than 2, but since the value of the A register is either 1 or 2 or greater (it is not 0) at the execution stage of the command "CP A,2", raising the carry flag when it is less than 2 results in the carry flag being raised when it is 1. In this way, if the value of the A register is 1, the carry flag = 1. The command "DEC (HL)" on the fifth line decrements the 1-byte value stored at the address indicated by the HL register by 1, updating the value stored at the address indicated by the HL register. Here, if the value stored in the address indicated by the HL register is 2 or more, the decremented value is 1 or more, so the zero flag is not set and becomes 0, and if it is 1, the decremented value is 0, so the zero flag is set and becomes 1. Note that the carry flag does not change with the command "DEC (HL)". In this way, if the value stored in the address indicated by the HL register is 2 or more, the zero flag = 0 and the carry flag = 0, and if it is 1, the zero flag = 1 and the carry flag = 1. The commands on lines 2 to 5 correspond to step S3 in FIG. 140(b). Then, the command "RET" on line 6 returns to the routine one step above. The command on line 6 corresponds to step S4 in FIG. 140(b). In this way, it is possible to decrement the value stored in the address indicated by the HL register by 1 and set the zero flag and the carry flag.

続いて、図142(a)の3行目のコマンド「JR NC,TZ_STP_10」によって、キャリーフラグが0(NC)であれば、TZ_STP_10に移動する。かかる3行目のコマンドが、図140(a)のステップS5、6に対応する。こうして、BYTEDECモジュールの結果に基づいた処理が可能となる。 Next, the command "JR NC, TZ_STP_10" on the third line of FIG. 142(a) moves to TZ_STP_10 if the carry flag is 0 (NC). This command on the third line corresponds to steps S5 and S6 in FIG. 140(a). In this way, processing based on the results of the BYTEDEC module becomes possible.

BYTEDECモジュールは、複数のモジュールからサブルーチンとして呼び出される。例えば、図26のステップS400-15で示したタイマ更新処理を実行するTMR_NEWモジュール、図26のステップS400-21で示した状態管理処理(エラー管理処理)を実行するSTC_PRCモジュール、図43のステップS630で示した特別図柄停止図柄表示処理を実行するTZ_STPモジュール、図40のステップS613で示した回数切り管理処理を実行するCHGSTSモジュール、図34のステップS540で示したカウントスイッチ通過処理(大入賞口通過処理)において大入賞口入球コマンドをセット(ステップS540-3)した後に実行する大入賞口過剰入賞監視処理を実行するTDOVCHKモジュール、図26のステップS400-21で示した状態管理処理(エラー管理処理)のサブルーチンであるベース異常エラー監視処理を実行するBER_CHKモジュール等から呼び出される。 The BYTEDEC module is called as a subroutine from multiple modules. For example, it is called from the TMR_NEW module that executes the timer update process shown in step S400-15 of FIG. 26, the STC_PRC module that executes the state management process (error management process) shown in step S400-21 of FIG. 26, the TZ_STP module that executes the special symbol stop symbol display process shown in step S630 of FIG. 43, the CHGSTS module that executes the number of times cut management process shown in step S613 of FIG. 40, the TDOVCHK module that executes the large prize opening excessive winning monitoring process that is executed after setting the large prize opening ball entry command (step S540-3) in the count switch passing process (large prize opening passing process) shown in step S540 of FIG. 34, and the BER_CHK module that executes the base abnormal error monitoring process, which is a subroutine of the state management process (error management process) shown in step S400-21 of FIG. 26.

このように、図142(b)に示したBYTEDECモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LD A,(HL)」1バイト+3行目のコマンド「RT Z,A」1バイト+4行目のコマンド「CP A,2」2バイト+5行目のコマンド「DEC (HL)」1バイト+6行目のコマンド「RET」1バイト=6バイトとなり、総実行サイクルは、2行目2サイクル+3行目4サイクル(または2サイクル)+4行目2サイクル+5行目4サイクル+6行目3サイクル=15サイクル(または13サイクル)となる。なお、括弧内のサイクル数は、コマンド「RT Z,A」によって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。かかるBYTEDECモジュールを設けることによって、上述した各モジュール内でバイトカウンタ減算処理を行うことなく、コマンドサイズ2バイトのコマンド「CALLF BYTEDEC」で賄うことができるので、コマンドの短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Thus, the total command size of the BYTEDEC module commands shown in Fig. 142(b) is 1 byte of the command "LD A, (HL)" on line 2 + 1 byte of the command "RT Z, A" on line 3 + 2 bytes of the command "CP A, 2" on line 4 + 1 byte of the command "DEC (HL)" on line 5 + 1 byte of the command "RET" on line 6 = 6 bytes, and the total execution cycles are 2 cycles on line 2 + 4 cycles (or 2 cycles) on line 3 + 2 cycles on line 4 + 4 cycles on line 5 + 3 cycles on line 6 = 15 cycles (or 13 cycles). Note that the number of cycles in parentheses indicates the execution cycles when the command "RT Z, A" does not move to the routine above. By providing this BYTEDEC module, it is possible to use the 2-byte command "CALLF BYTEDEC" without having to perform byte counter subtraction processing within each of the above-mentioned modules, shortening the command and making it possible to secure the capacity of the control area for performing game control processing.

図143は、BYTEDECモジュールを実現するためのコマンドの他の例を説明するための説明図である。ここでは、図142(b)のBYTEDECモジュールのコマンド群を図143(b)のBYTEDECモジュールのコマンド群に置き換えており、他の、図142(a)のBYTEDECモジュールを呼び出す任意の処理のコマンド群は、図143(a)として、そのまま用いている。ここでは、図143(a)のように、図142(a)と実質的に等しい処理についてはその説明を省略し、図143(b)の異なる処理のみを説明する。 Figure 143 is an explanatory diagram for explaining another example of commands for implementing the BYTEDEC module. Here, the commands of the BYTEDEC module in Figure 142(b) are replaced with the commands of the BYTEDEC module in Figure 143(b), and the commands of any other process that calls the BYTEDEC module in Figure 142(a) are used as is, as in Figure 143(a). Here, as in Figure 143(a), explanations of processes that are essentially the same as those in Figure 142(a) are omitted, and only the different processes in Figure 143(b) are explained.

図143(b)の1行目の指標「BYTEDEC:」は、当該BYTEDECモジュールの先頭アドレスを示す。2行目のコマンド「DECM (HL)」によって、HLレジスタで示されるアドレスに格納された値が1以上であれば1だけデクリメントし、0であれば0を維持する。 The index "BYTEDEC:" on the first line of Figure 143(b) indicates the starting address of the BYTEDEC module. The command "DECM (HL)" on the second line decrements the value stored in the address indicated by the HL register by 1 if it is 1 or greater, and maintains it at 0 if it is 0.

ここで、コマンド「DECM (HL)」は、HLレジスタで示されるアドレスに格納された1バイト値をデクリメントし、キャリーフラグが立っていれば(-1となれば)、HLレジスタで示されるアドレスに格納された1バイト値に強制的に0を格納するコマンドである。そうすると、HLレジスタで示されるアドレスに格納された値が1以上であれば1だけデクリメントし、0であれば0を維持することとなる。かかるコマンド「DECM (HL)」を実行することで、デクリメント後の値がゼロであれば(デクリメント前の値が1または0であれば)、ゼロフラグ(第1ゼロフラグおよび第2ゼロフラグ)を立てて1とし、デクリメント前の値がゼロであれば、キャリーフラグを立てて1とする。かかるコマンドのコマンドサイズは「2」であり、実行サイクルは「5」である。 Here, the command "DECM (HL)" decrements the one-byte value stored at the address indicated by the HL register, and if the carry flag is set (-1), it forcibly stores 0 in the one-byte value stored at the address indicated by the HL register. Then, if the value stored at the address indicated by the HL register is 1 or greater, it is decremented by 1, and if it is 0, it remains 0. By executing this command "DECM (HL)", if the value after decrement is zero (if the value before decrement is 1 or 0), the zero flags (first zero flag and second zero flag) are set to 1, and if the value before decrement is zero, the carry flag is set to 1. The command size of this command is "2", and the execution cycle is "5".

図143(b)の3行目のコマンド「RET NZ」によって、ゼロフラグが1でなければ(デクリメント後の値がゼロでなければ)、1段上のルーチンに戻る。ここでは、コマンド「DECM (HL)」によって既にデクリメントが行われているので、ゼロフラグが1ではないということは、デクリメント前が2以上であることを示す。その場合、ゼロフラグは立たず0となり、キャリーフラグも立たずに0となるので、1段上のルーチンに戻ってもよい。なお、ここでは「NZ」を挙げ、第1ゼロフラグを参照しているが、通常、第1ゼロフラグを変化させた場合には併せて第2ゼロフラグも変化するので、全ての処理において「NZ」の代わりに「NTZ」を用いることもできる。 The command "RET NZ" on the third line of Figure 143(b) returns to the routine one level higher if the zero flag is not 1 (if the value after decrement is not zero). In this case, since the command "DECM (HL)" has already performed the decrement, the fact that the zero flag is not 1 indicates that the value before the decrement was 2 or more. In that case, the zero flag is not set and is 0, and the carry flag is also not set and is 0, so it is possible to return to the routine one level higher. Note that "NZ" is given here to refer to the first zero flag, but since normally when the first zero flag is changed, the second zero flag also changes, "NTZ" can also be used instead of "NZ" in all processing.

なお、コマンド「DECM (HL)」では、デクリメント前のHLレジスタで示されるアドレスに格納された値が1であれば、デクリメント後に0となるとともに、ゼロフラグ=1、キャリーフラグ=0となり、0であれば、デクリメントはされず0を維持するとともに、ゼロフラグ=1、キャリーフラグ=1となる。すなわち、キャリーフラグについて、図141に示した仕様と逆になる。そこで、図143(b)の4行目のコマンド「CCF」によって、キャリーフラグを反転(1→0、0→1)させる。なお、コマンド「CCF」によってはゼロフラグは変化しない。こうして、デクリメント前にHLレジスタで示されるアドレスに格納された値が1であれば、ゼロフラグ=0、キャリーフラグ=1とし、0であれば、ゼロフラグ=1、キャリーフラグ=0とすることができる。かかる2~4行目のコマンドが図140(b)のステップS3に対応する。そして、5行目のコマンド「RET」によって、1段上のルーチンに戻る。かかる5行目のコマンドが、図140(b)のステップS4に対応する。こうして、HLレジスタで示されるアドレスに格納された値を1だけデクリメントし、かつ、ゼロフラグおよびキャリーフラグを設定することが可能となる。 In the command "DECM (HL)", if the value stored in the address indicated by the HL register before the decrement is 1, it becomes 0 after the decrement, and the zero flag = 1 and the carry flag = 0. If the value is 0, the decrement is not performed and the value remains 0, and the zero flag = 1 and the carry flag = 1. In other words, the specifications for the carry flag are the opposite of those shown in FIG. 141. Therefore, the command "CCF" on the fourth line of FIG. 143(b) inverts the carry flag (1 → 0, 0 → 1). Note that the command "CCF" does not change the zero flag. In this way, if the value stored in the address indicated by the HL register before the decrement is 1, the zero flag = 0 and the carry flag = 1, and if the value is 0, the zero flag = 1 and the carry flag = 0. The commands on the second to fourth lines correspond to step S3 in FIG. 140(b). Then, the command "RET" on the fifth line returns to the routine one step above. The command on the fifth line corresponds to step S4 in FIG. 140(b). In this way, it is possible to decrement the value stored at the address indicated by the HL register by 1 and set the zero flag and carry flag.

続いて、図143(a)の3行目のコマンド「JR NC,TZ_STP_10」によって、キャリーフラグが0(NC)であれば、TZ_STP_10に移動する。かかる3行目のコマンドが、図140(a)のステップS5、6に対応する。こうして、BYTEDECモジュールの結果に基づいた処理が可能となる。 Next, the command "JR NC, TZ_STP_10" on the third line of FIG. 143(a) moves to TZ_STP_10 if the carry flag is 0 (NC). This command on the third line corresponds to steps S5 and S6 in FIG. 140(a). In this way, processing based on the results of the BYTEDEC module becomes possible.

図143(b)のBYTEDECモジュールのコマンドの総コマンドサイズは、2行目のコマンド「DECM (HL)」2バイト+3行目のコマンド「RET NZ」1バイト+4行目のコマンド「CCF」2バイト+5行目のコマンド「RET」1バイト=6バイトとなり、総実行サイクルは、2行目5サイクル+3行目3サイクル(1サイクル)+4行目2サイクル+6行目3サイクル=13サイクル(11サイクル)となる。なお、括弧内のサイクル数は、コマンド「RET NZ」によって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。したがって、図142(b)の場合と比べ、総実行サイクルが少なくとも2サイクル削減される。かかるBYTEDECモジュールによって、処理負荷の軽減を図りつつ、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 The total command size of the BYTEDEC module commands in FIG. 143(b) is 2 bytes of the command "DECM (HL)" on the second line + 1 byte of the command "RET NZ" on the third line + 2 bytes of the command "CCF" on the fourth line + 1 byte of the command "RET" on the fifth line = 6 bytes, and the total execution cycles are 5 cycles on the second line + 3 cycles (1 cycle) on the third line + 2 cycles on the fourth line + 3 cycles on the sixth line = 13 cycles (11 cycles). The number of cycles in parentheses indicates the execution cycles when the command "RET NZ" does not move to the next higher routine. Therefore, the total execution cycles are reduced by at least 2 cycles compared to the case in FIG. 142(b). This BYTEDEC module makes it possible to secure the capacity of the control area for performing game control processing while reducing the processing load.

また、ここでは、図142の例と比較して、Aレジスタを利用していない。したがって、Aレジスタの値を意図せず更新してしまうことはない。また、図142の例では、Aレジスタが既に利用されている場合、スタックしてAレジスタの値を退避する必要があったが、ここでは、Aレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 In addition, unlike the example in FIG. 142, the A register is not used here. Therefore, the value of the A register will not be updated unintentionally. Also, in the example in FIG. 142, if the A register was already in use, it was necessary to save the value of the A register by stacking it, but here, since the A register is not used, stack processing is not required. In this way, resources can be used efficiently.

また、図142(b)と図143(b)とを比較して理解できるように、図142(b)において4行(2行目~5行目)を占有していたコマンド群を、図143(b)においては3行(2行目~4行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing FIG. 142(b) and FIG. 143(b), the command group that occupies four lines (lines 2 to 5) in FIG. 142(b) can be represented in three lines (lines 2 to 4) in FIG. 143(b), making it possible to reduce the number of commands and lighten the design load.

なお、かかるBYTEDECモジュールは、パチンコ機のみならず、スロットマシンにおいても、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、REG中処理(AT状態=「6」)を実行するREG_LOTモジュール、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、BIG中処理(AT状態=「7」)を実行するBIG_LOTモジュール、図96のステップS2900-3で示した役物作動図柄表示処理を実行するJCGMSETモジュール、図98のステップS3100で示したタイマ割込み処理を実行するTMR_IPTモジュール、図98のステップS3100-21で示した状態別モジュール実行処理を実行するためのCAL_MODモジュールにおいて、タイマ割込み処理用フェーズ(0~3)に応じて4回に1回(5.96msec毎に)選択的に移行し、端子板出力制御処理を実行するIPT_PAモジュール、図98のステップS3100-21で示した状態別モジュール実行処理を実行するためのCAL_MODモジュールにおいて、タイマ割込み処理用フェーズ(0~3)に応じて4回に1回(5.96msec毎に)選択的に移行し、時間監視処理を実行するIPT_PCモジュール、および、図98のステップS3100-21で示した状態別モジュール実行処理を実行するためのCAL_MODモジュールにおいて、タイマ割込み処理用フェーズ(0~3)に応じて4回に1回(5.96msec毎に)選択的に移行し、外部信号出力制御処理を実行するIPT_PDモジュール等からコマンド「RST」によって呼び出される、カウンタ減算処理を実行するRAM_DECモジュール(汎用モジュール)として利用されている。 In addition, such a BYTEDEC module is used not only in pachinko machines but also in slot machines, in the EXE_SET module which executes the execution flag setting process shown in step S2400-11 in FIG. 91, selectively transitions depending on the game state and the presentation state in the EXE_SET module which executes the execution flag setting process shown in step S2400-11 in FIG. 91, and executes the REG during processing (AT state = "6"); the BIG_LOT module which selectively transitions depending on the game state and the presentation state in the EXE_SET module which executes the execution flag setting process shown in step S2400-11 in FIG. 91, and executes the BIG during processing (AT state = "7"); the JCGMSET module which executes the role activation pattern display process shown in step S2900-3 in FIG. 96; the TMR_IPT module which executes the timer interrupt process shown in step S3100 in FIG. 98; and the CAL_MOD module for executing the state-specific module execution process shown in step S3100-21 in FIG. 98. In the CAL_MOD module for executing the state-specific module execution process shown in step S3100-21 of FIG. 98, it is used as an IPT_PA module that selectively transitions once every four times (every 5.96 msec) according to the timer interrupt processing phase (0 to 3) and executes terminal board output control processing, an IPT_PC module that selectively transitions once every four times (every 5.96 msec) according to the timer interrupt processing phase (0 to 3) and executes time monitoring processing, and a RAM_DEC module (general-purpose module) that executes counter decrement processing and is called by the command "RST" from the IPT_PD module that selectively transitions once every four times (every 5.96 msec) according to the timer interrupt processing phase (0 to 3) and executes external signal output control processing in the CAL_MOD module for executing the state-specific module execution process shown in step S3100-21 of FIG. 98.

図144は、RAM_DECモジュールを説明するための説明図である。図144に示したRAM_DECモジュールは、上述したBYTEDECモジュール同様、カウンタ減算処理、すなわち、メインRAM500cの1バイト変数を1だけデクリメントするための汎用モジュールである。なお、RAM_DECモジュールでは、BYTEDECモジュール同様、デクリメントのみならず、デクリメントした結果、図141に示したゼロフラグおよびキャリーフラグが設定される。 Figure 144 is an explanatory diagram for explaining the RAM_DEC module. Like the BYTEDEC module described above, the RAM_DEC module shown in Figure 144 is a general-purpose module for counter decrement processing, i.e., decrementing a 1-byte variable in the main RAM 500c by 1. Note that, like the BYTEDEC module, the RAM_DEC module not only decrements, but also sets the zero flag and carry flag shown in Figure 141 as a result of the decrement.

図144(a)の1行目の指標「RAM_DEC:」は、当該RAM_DECモジュールの先頭アドレスを示す。2行目のコマンド「LD A,(HL)」によって、HLレジスタで示されるアドレスに格納された1バイト値がAレジスタに読み出される。かかるコマンド「LD A,(HL)」では、その実行により第2ゼロフラグが変化する。そして、3行目のコマンド「RT Z,A」によって、Aレジスタの値が0であれば(第2ゼロフラグが1であれば)、1段上のルーチンに戻る。このとき、Aレジスタの値が0であれば、コマンド「RT Z,A」によってゼロフラグ(第1ゼロフラグ)が1となり、キャリーフラグは0となる。こうして、HLレジスタで示されるアドレスに格納された値が0であれば、デクリメントを行うことなく、ゼロフラグ=1、キャリーフラグ=0とすることができる。 The index "RAM_DEC:" on the first line of FIG. 144(a) indicates the starting address of the RAM_DEC module. The command "LD A, (HL)" on the second line reads a one-byte value stored in the address indicated by the HL register into the A register. Execution of this command "LD A, (HL)" changes the second zero flag. Then, the command "RT Z, A" on the third line returns to the routine one level above if the value of the A register is 0 (if the second zero flag is 1). At this time, if the value of the A register is 0, the command "RT Z, A" sets the zero flag (first zero flag) to 1 and the carry flag to 0. In this way, if the value stored in the address indicated by the HL register is 0, the zero flag can be set to 1 and the carry flag to 0 without performing a decrement.

図144(a)の4行目のコマンド「CP A,2」によって、Aレジスタの値と2が比較され、Aレジスタが2以上であれば、キャリーフラグは立たず0となり、1であれば、キャリーフラグが立って1となる。なお、コマンド「CP A,2」は、Aレジスタが2未満の場合にキャリーフラグが立つコマンドであるが、かかるコマンド「CP A,2」の実行段階では、Aレジスタの値は1か2以上のいずれかとなっているので(0ではないので)、2未満でキャリーフラグを立たせることで、結果的に1の場合にキャリーフラグが立つこととなる。こうして、Aレジスタの値が1であれば、キャリーフラグ=1とすることができる。5行目のコマンド「DEC A」によって、Aレジスタで示されるアドレスに格納された1バイト値が1だけデクリメントされる。6行目のコマンド「LD (HL),A」によって、Aレジスタの値がHLレジスタで示されるアドレスに格納される。ここで、HLレジスタで示されるアドレスに格納された値が2以上であれば、デクリメントした値は1以上なので、ゼロフラグは立たず0となり、1であれば、デクリメントした値が0となるので、ゼロフラグが立って1となる。なお、コマンド「DEC A」によってはキャリーフラグは変化しない。こうして、HLレジスタで示されるアドレスに格納された値が2以上であれば、ゼロフラグ=0、キャリーフラグ=0とし、1であれば、ゼロフラグ=1、キャリーフラグ=1とすることができる。そして、7行目のコマンド「RET」によって、1段上のルーチンに戻る。こうして、HLレジスタで示されるアドレスに格納された値を1だけデクリメントし、かつ、ゼロフラグおよびキャリーフラグを設定することが可能となる。 The command "CP A,2" on the fourth line of FIG. 144(a) compares the value of the A register with 2. If the A register is 2 or more, the carry flag is not set and becomes 0, and if the A register is 1, the carry flag is set and becomes 1. Note that the command "CP A,2" sets the carry flag when the A register is less than 2, but since the value of the A register is either 1 or 2 or more (it is not 0) at the execution stage of the command "CP A,2", setting the carry flag when it is less than 2 results in the carry flag being set when it is 1. In this way, if the value of the A register is 1, the carry flag = 1. The command "DEC A" on the fifth line decrements the 1-byte value stored at the address indicated by the A register by 1. The command "LD (HL),A" on the sixth line stores the value of the A register at the address indicated by the HL register. Here, if the value stored at the address indicated by the HL register is 2 or greater, the decremented value is 1 or greater, so the zero flag is not set and the value becomes 0; if it is 1, the decremented value is 0, so the zero flag is set and the value becomes 1. Note that the carry flag does not change with the command "DEC A." In this way, if the value stored at the address indicated by the HL register is 2 or greater, the zero flag = 0 and the carry flag = 0; if it is 1, the zero flag = 1 and the carry flag = 1. Then, the command "RET" on the seventh line returns to the routine one level above. In this way, it is possible to decrement the value stored at the address indicated by the HL register by 1 and set the zero flag and carry flag.

ここで、コマンド「DECM」への置き換えを行うと、図144(a)のコマンド群を図144(b)のように変更することができる。図144(b)の1行目の指標「RAM_DEC:」は、当該RAM_DECモジュールの先頭アドレスを示す。2行目のコマンド「DECM (HL)」によって、HLレジスタで示されるアドレスに格納された値が1以上であれば1だけデクリメントし、0であれば0を維持する。 Now, by replacing it with the command "DECM", the command group in FIG. 144(a) can be changed to that in FIG. 144(b). The index "RAM_DEC:" on the first line of FIG. 144(b) indicates the starting address of the RAM_DEC module. The command "DECM (HL)" on the second line decrements the value stored in the address indicated by the HL register by 1 if it is 1 or greater, and maintains the value at 0 if it is 0.

図144(b)の3行目のコマンド「RET NZ」によって、ゼロフラグが1でなければ(デクリメント後の値がゼロでなければ)、1段上のルーチンに戻る。ここでは、コマンド「DECM (HL)」によって既にデクリメントが行われているので、ゼロフラグが1ではないということは、デクリメント前が2以上であることを示す。その場合、ゼロフラグは立たず0となり、キャリーフラグも立たずに0となるので、1段上のルーチンに戻ってもよい。続いて、4行目のコマンド「CCF」によって、キャリーフラグを反転(1→0、0→1)させる。なお、コマンド「CCF」によってはゼロフラグは変化しない。こうして、デクリメント前にHLレジスタで示されるアドレスに格納された値が1であれば、ゼロフラグ=0、キャリーフラグ=1とし、0であれば、ゼロフラグ=1、キャリーフラグ=0とすることができる。そして、5行目のコマンド「RET」によって、1段上のルーチンに戻る。こうして、HLレジスタで示されるアドレスに格納された値を1だけデクリメントし、かつ、ゼロフラグおよびキャリーフラグを設定することが可能となる。 The command "RET NZ" on the third line of Fig. 144(b) returns to the routine one level above if the zero flag is not 1 (if the value after decrement is not zero). In this case, since the command "DECM (HL)" has already performed decrement, the fact that the zero flag is not 1 indicates that the value before decrement was 2 or more. In that case, the zero flag is not set and becomes 0, and the carry flag is also not set and becomes 0, so it is possible to return to the routine one level above. Next, the command "CCF" on the fourth line inverts the carry flag (1 → 0, 0 → 1). Note that the command "CCF" does not change the zero flag. In this way, if the value stored at the address indicated by the HL register before decrement is 1, the zero flag = 0 and the carry flag = 1, and if it is 0, the zero flag = 1 and the carry flag = 0. Then, the command "RET" on the fifth line returns to the routine one level above. In this way, it is possible to decrement the value stored at the address indicated by the HL register by one and set the zero flag and carry flag.

ここで、図144(a)に示したRAM_DECモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LD A,(HL)」1バイト+3行目のコマンド「RT Z,A」1バイト+4行目のコマンド「CP A,2」2バイト+5行目のコマンド「DEC A」1バイト+6行目のコマンド「LD (HL),A」1バイト+7行目のコマンド「RET」1バイト=7バイトとなり、総実行サイクルは、2行目2サイクル+3行目4サイクル(または2サイクル)+4行目2サイクル+5行目1サイクル+6行目2サイクル+7行目3サイクル=14サイクル(または12サイクル)となる。なお、括弧内のサイクル数は、コマンド「RT Z,A」によって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。一方、図144(b)に示したRAM_DECモジュールのコマンドの総コマンドサイズは、2行目のコマンド「DECM (HL)」2バイト+3行目のコマンド「RET NZ」1バイト+4行目のコマンド「CCF」2バイト+5行目のコマンド「RET」1バイト=6バイトとなり、総実行サイクルは、2行目5サイクル+3行目3サイクル(1サイクル)+4行目2サイクル+6行目3サイクル=13サイクル(11サイクル)となる。なお、括弧内のサイクル数は、コマンド「RET NZ」によって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。したがって、図144(a)のコマンド群を図144(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減され、総実行サイクルが少なくとも1サイクル削減される。かかる置き換えによって、コマンドの短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the commands of the RAM_DEC module shown in FIG. 144(a) is 1 byte of the command "LD A, (HL)" on the second line + 1 byte of the command "RT Z, A" on the third line + 2 bytes of the command "CP A, 2" on the fourth line + 1 byte of the command "DEC A" on the fifth line + 1 byte of the command "LD (HL), A" on the sixth line + 1 byte of the command "RET" on the seventh line = 7 bytes, and the total execution cycle is 2 cycles on the second line + 4 cycles (or 2 cycles) on the third line + 2 cycles on the fourth line + 1 cycle on the fifth line + 2 cycles on the sixth line + 3 cycles on the seventh line = 14 cycles (or 12 cycles). The number of cycles in parentheses indicates the execution cycle when the command "RT Z, A" does not move to the routine above. On the other hand, the total command size of the commands of the RAM_DEC module shown in FIG. 144(b) is 2 bytes of the command "DECM (HL)" on the second line + 1 byte of the command "RET NZ" on the third line + 2 bytes of the command "CCF" on the fourth line + 1 byte of the command "RET" on the fifth line = 6 bytes, and the total execution cycle is 5 cycles on the second line + 3 cycles (1 cycle) on the third line + 2 cycles on the fourth line + 3 cycles on the sixth line = 13 cycles (11 cycles). The number of cycles in parentheses indicates the execution cycle when the command "RET NZ" does not move to the next higher routine. Therefore, by replacing the command group in FIG. 144(a) with the command group in FIG. 144(b), the total command size is reduced by 1 byte and the total execution cycle is reduced by at least 1 cycle. Such replacement shortens the command and reduces the processing load, making it possible to secure the capacity of the control area for performing game control processing.

また、WORDDECモジュールは、ワードカウンタ減算処理、すなわち、メインRAM300cの2バイト変数を1だけデクリメントするための汎用モジュールである。なお、WORDDECモジュールでは、デクリメントのみならず、デクリメントした結果、ゼロフラグおよびキャリーフラグを設定している。 The WORDDEC module is a general-purpose module for word counter subtraction processing, i.e., decrementing a 2-byte variable in main RAM 300c by 1. Note that the WORDDEC module not only decrements, but also sets the zero flag and carry flag as a result of the decrement.

メインCPU300aは、メインROM300bからプログラムを読み出し、読み出したプログラムを遂行し、任意の処理において、サブルーチンとしてWORDDECモジュールを呼び出し、WORDDECモジュールを遂行する。WORDDECモジュールでは、メインRAM300cに保持された2バイトデータをデクリメントする。 The main CPU 300a reads a program from the main ROM 300b, executes the read program, and in any process, calls the WORDDEC module as a subroutine and executes the WORDDEC module. The WORDDEC module decrements the 2-byte data stored in the main RAM 300c.

図145は、WORDDECモジュールの具体的な処理を示したフローチャートである。ここでは、任意の処理として、図26のステップS400-21で示した状態管理処理(エラー管理処理)のサブルーチンである入賞頻度異常エラー判定処理を実行するNHI_CHKモジュールの一部を挙げて説明する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。また、当該WORDDECモジュールの説明中、所定のレジスタはHLレジスタである。 Figure 145 is a flow chart showing the specific processing of the WORDDEC module. Here, as an optional process, a part of the NHI_CHK module that executes the winning frequency abnormality error determination process, which is a subroutine of the status management process (error management process) shown in step S400-21 of Figure 26, is given as an explanation. The numerical values of step S in this figure are used only in the explanation of this figure. Also, in the explanation of this WORDDEC module, the specified register is the HL register.

メインCPU300aは、図145(a)のように、任意の処理を実行する。メインCPU300aは、まず、HLレジスタに、デクリメントの対象となる変数のアドレスを設定する(S1)。そして、サブルーチンとしてWORDDECモジュールを呼び出す(S2)。 The main CPU 300a executes an arbitrary process as shown in FIG. 145(a). The main CPU 300a first sets the address of the variable to be decremented in the HL register (S1). Then, it calls the WORDDEC module as a subroutine (S2).

メインCPU300aは、図145(b)のように、WORDDECモジュールにおいて、HLレジスタで示されるアドレスに格納された2バイト値を1だけデクリメントし、かつ、ゼロフラグおよびキャリーフラグを設定する(S3)。そして、当該WORDDECモジュールを終了して1段上のサブルーチンに戻る(S4)。なお、デクリメント態様とフラグの設定については、BYTEDECモジュール同様、図141で説明されている。 As shown in FIG. 145(b), in the WORDDEC module, the main CPU 300a decrements the 2-byte value stored at the address indicated by the HL register by 1 and sets the zero flag and carry flag (S3). Then, the WORDDEC module is terminated and the process returns to the subroutine one level above (S4). Note that the decrement mode and flag settings are explained in FIG. 141, as with the BYTEDEC module.

WORDDECモジュールによって、ゼロフラグおよびキャリーフラグが設定されると、メインCPU300aは、そのHLレジスタの値を用いて様々な処理を遂行する。例えば、ここでは、デクリメント結果が0ではないことを判定し(S5)、その結果、0でなければ(S5におけるYES)、当該サブルーチンから戻り(S6)、0であれば(S5におけるNO)、移動することなく次の処理を遂行する。 When the zero flag and carry flag are set by the WORDDEC module, the main CPU 300a performs various processes using the value of the HL register. For example, here, it is determined that the decrement result is not 0 (S5), and if the result is not 0 (YES in S5), the process returns from the subroutine (S6), and if the result is 0 (NO in S5), the process performs the next process without moving on.

図146は、WORDDECモジュールを実現するためのコマンドの一例を説明するための説明図である。このうち、図146(a)は、任意の処理のコマンド群を示し、図146(b)は、WORDDECモジュールのコマンド群を示す。図145で示したフローチャートは、例えば、図146に示したプログラムによって実現される。 Figure 146 is an explanatory diagram for explaining an example of commands for implementing the WORDDEC module. Of these, Figure 146(a) shows a group of commands for an arbitrary process, and Figure 146(b) shows a group of commands for the WORDDEC module. The flowchart shown in Figure 145 is implemented, for example, by the program shown in Figure 146.

図146(a)の1行目のコマンド「POP HL」によって、スタック領域に退避されていた入賞頻度異常エラー監視タイマのアドレス値をHLレジスタに復帰させる。かかる1行目のコマンドが、図145(a)のステップS1に対応する。そして、2行目のコマンド「CALLF WORDDEC」によって、サブルーチンとしてWORDDECモジュールが呼び出される。かかる2行目のコマンドが、図145(a)のステップS2に対応する。 The command "POP HL" on the first line of FIG. 146(a) restores the address value of the winning frequency abnormality error monitoring timer that was saved in the stack area to the HL register. This command on the first line corresponds to step S1 in FIG. 145(a). Then, the command "CALLF WORDDEC" on the second line calls the WORDDEC module as a subroutine. This command on the second line corresponds to step S2 in FIG. 145(a).

図146(b)の1行目の指標「WORDDEC:」は、当該WORDDECモジュールの先頭アドレスを示す。2行目のコマンド「JTW Z,(HL),WORDDEC_99」によって、HLレジスタで示されるアドレスに格納された2バイト値が0かどうか判断され、0であれば、指標「WORDDEC_99:」に移動する。かかるコマンド「JTW Z,(HL),WORDDEC_99」では、その実行によりゼロフラグが変化する。例えば、HLレジスタで示されるアドレスに格納された値が0であれば、ゼロフラグが1となり、キャリーフラグは0となる。また、HLレジスタで示されるアドレスに格納された値が0であれば、指標「WORDDEC_99:」に移動し、7行目のコマンド「RET」によって、1段上のサブルーチンに戻る。こうして、HLレジスタで示されるアドレスに格納された値が0であれば、デクリメントを行うことなく、ゼロフラグ=1、キャリーフラグ=0とすることができる。 The index "WORDDEC:" on the first line of FIG. 146(b) indicates the top address of the WORDDEC module. The command "JTW Z, (HL), WORDDEC_99" on the second line determines whether the 2-byte value stored in the address indicated by the HL register is 0, and if it is 0, moves to the index "WORDDEC_99:". The execution of this command "JTW Z, (HL), WORDDEC_99" changes the zero flag. For example, if the value stored in the address indicated by the HL register is 0, the zero flag becomes 1 and the carry flag becomes 0. Also, if the value stored in the address indicated by the HL register is 0, moves to the index "WORDDEC_99:", and the command "RET" on the seventh line returns to the subroutine one level above. In this way, if the value stored in the address indicated by the HL register is 0, the zero flag can be set to 1 and the carry flag to 0 without performing a decrement.

図146(b)の3行目のコマンド「DECW (HL)」によって、HLレジスタで示されるアドレスに格納された2バイト値を1だけデクリメントして、HLレジスタで示されるアドレスに格納された値を更新する。ここで、HLレジスタで示されるアドレスに格納された値が2以上であれば、デクリメントした値は1以上なので、ゼロフラグは立たず0となり、1であれば、デクリメントした値が0となるので、ゼロフラグ(第2ゼロフラグ)が立って1となる。そして、4行目のコマンド「RET NTZ」によって、ゼロフラグが1でなければ、1段上のサブルーチンに戻る。ここで「NTZ」としているのは、コマンド「DECW (HL)」によって第2ゼロフラグは変化するが第1ゼロフラグは変化しないからである。なお、コマンド「RET NTZ」によっては、ゼロフラグもキャリーフラグも変化しない。このとき、ゼロフラグが1とならない(1段上のサブルーチンに戻る)のは、デクリメント前のHLレジスタで示されるアドレスに格納された値が2以上の場合である。したがって、デクリメント前が2以上であれば、ゼロフラグ=0、キャリーフラグ=0となっているので、1段上のサブルーチンに戻っても問題ない。 The command "DECW (HL)" on the third line of FIG. 146(b) decrements the 2-byte value stored at the address indicated by the HL register by 1, updating the value stored at the address indicated by the HL register. If the value stored at the address indicated by the HL register is 2 or more, the decremented value is 1 or more, so the zero flag is not set and becomes 0, and if it is 1, the decremented value becomes 0, so the zero flag (second zero flag) is set and becomes 1. Then, the command "RET NTZ" on the fourth line returns to the subroutine one level above if the zero flag is not 1. The reason "NTZ" is used here is because the command "DECW (HL)" changes the second zero flag but not the first zero flag. Note that the command "RET NTZ" does not change either the zero flag or the carry flag. At this time, the zero flag does not become 1 (returns to the subroutine one level above) if the value stored at the address indicated by the HL register before the decrement is 2 or more. Therefore, if the value before the decrement is 2 or greater, the zero flag = 0 and the carry flag = 0, so there is no problem in returning to the subroutine one level above.

また、ゼロフラグが1であれば、デクリメント前のHLレジスタで示されるアドレスに格納された値が1であり、ゼロフラグ=1、キャリーフラグ=0となっている。すなわち、キャリーフラグについて、図141に示した仕様と逆になる。そこで、5行目のコマンド「SCF」によって、キャリーフラグを強制的に立てて1とする。こうして、デクリメント前にHLレジスタで示されるアドレスに格納された値が1であれば、ゼロフラグ=1、キャリーフラグ=1となる。なお、コマンド「SCF」によってはゼロフラグは変化しない。かかる2~6行目のコマンドが図145(b)のステップS3に対応する。そして、7行目のコマンド「RET」によって、1段上のサブルーチンに戻る。かかる7行目のコマンドが、図145(b)のステップS4に対応する。こうして、HLレジスタで示されるアドレスに格納された値を1だけデクリメントし、かつ、ゼロフラグおよびキャリーフラグを設定することが可能となる。 Also, if the zero flag is 1, the value stored in the address indicated by the HL register before the decrement is 1, and the zero flag = 1 and the carry flag = 0. In other words, the specifications for the carry flag are the opposite of those shown in FIG. 141. Therefore, the command "SCF" on the fifth line forces the carry flag to be set to 1. Thus, if the value stored in the address indicated by the HL register before the decrement is 1, the zero flag = 1 and the carry flag = 1. Note that the zero flag does not change due to the command "SCF". The commands on the second to sixth lines correspond to step S3 in FIG. 145(b). Then, the command "RET" on the seventh line returns to the subroutine one level above. The command on the seventh line corresponds to step S4 in FIG. 145(b). Thus, it is possible to decrement the value stored in the address indicated by the HL register by 1 and set the zero flag and the carry flag.

続いて、図146(a)の3行目のコマンド「RET NTZ」によって、ゼロフラグ(第2ゼロフラグ)が1でなければ(0であれば)、さらに1段上のサブルーチンに戻る。かかる3行目のコマンドが、図145(a)のステップS5、6に対応する。こうして、WORDDECモジュールの結果に基づいた処理が可能となる。 Next, the command "RET NTZ" on the third line of Fig. 146(a) causes the program to return to the subroutine one level higher if the zero flag (second zero flag) is not 1 (if it is 0). This command on the third line corresponds to steps S5 and S6 in Fig. 145(a). In this way, processing based on the results of the WORDDEC module becomes possible.

WORDDECモジュールは、複数のモジュールからサブルーチンとして呼び出される。例えば、図26のステップS400-15で示したタイマ更新処理を実行するTMR_NEWモジュール、図41のステップS620で示した特別図柄変動中処理を実行するTZ_SPNモジュール、図26のステップS400-21で示した状態管理処理(エラー管理処理)のサブルーチンである入賞頻度異常エラー判定処理を実行するNHI_CHKモジュール等から呼び出される。 The WORDDEC module is called as a subroutine from multiple modules. For example, it is called from the TMR_NEW module which executes the timer update process shown in step S400-15 of FIG. 26, the TZ_SPN module which executes the special symbol change process shown in step S620 of FIG. 41, and the NHI_CHK module which executes the winning frequency abnormality error determination process, which is a subroutine of the status management process (error management process) shown in step S400-21 of FIG. 26.

このように、図146(b)に示したWORDDECモジュールのコマンドの総コマンドサイズは、2行目のコマンド「JTW Z,(HL),WORDDEC_99」3バイト+3行目のコマンド「DECW (HL)」2バイト+4行目のコマンド「RET NTZ」1バイト+5行目のコマンド「SCF」2バイト+7行目のコマンド「RET」1バイト=9バイトとなり、総実行サイクルは、2行目6サイクル(または5サイクル)+3行目7サイクル+4行目3サイクル(または1サイクル)+5行目2サイクル+7行目3サイクル=21サイクル(または18サイクル)となる。なお、括弧内のサイクル数は、コマンド「JTW Z,(HL),WORDDEC_99」やコマンド「RET NTZ」によって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。かかるWORDDECモジュールを設けることによって、上述した各モジュール内でワードカウンタ減算処理を行うことなく、コマンドサイズ2バイトのコマンド「CALLF WORDDEC」で賄うことができるので、コマンドの短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Thus, the total command size of the WORDDEC module commands shown in Fig. 146(b) is 3 bytes of the command "JTW Z, (HL), WORDDEC_99" on line 2 + 2 bytes of the command "DECW (HL)" on line 3 + 1 byte of the command "RET NTZ" on line 4 + 2 bytes of the command "SCF" on line 5 + 1 byte of the command "RET" on line 7 = 9 bytes, and the total execution cycles are 6 cycles (or 5 cycles) on line 2 + 7 cycles (or 1 cycle) on line 3 + 3 cycles (or 1 cycle) on line 4 + 2 cycles on line 5 + 3 cycles on line 7 = 21 cycles (or 18 cycles). The number of cycles in parentheses indicates the execution cycles when the routine is not moved to the next higher routine by the command "JTW Z, (HL), WORDDEC_99" or the command "RET NTZ". By providing such a WORDDEC module, it is possible to use the 2-byte command "CALLF WORDDEC" without having to perform word counter subtraction processing within each of the above-mentioned modules, shortening the command and making it possible to secure the capacity of the control area for performing game control processing.

図147は、WORDDECモジュールを実現するためのコマンドの他の例を説明するための説明図である。ここでは、図146(b)のWORDDECモジュールのコマンド群を図147(b)のWORDDECモジュールのコマンド群に置き換えており、他の、図146(a)のWORDDECモジュールを呼び出す任意の処理のコマンド群は、図147(a)として、そのまま用いている。ここでは、図147(a)のように、図146(a)と実質的に等しい処理についてはその説明を省略し、図147(b)の異なる処理のみを説明する。 Figure 147 is an explanatory diagram for explaining another example of commands for implementing the WORDDEC module. Here, the commands of the WORDDEC module in Figure 146(b) are replaced with the commands of the WORDDEC module in Figure 147(b), and the commands of any other process that calls the WORDDEC module in Figure 146(a) are used as is, as in Figure 147(a). Here, as in Figure 147(a), explanations of processes that are essentially the same as those in Figure 146(a) are omitted, and only the different processes in Figure 147(b) are explained.

図147(b)の1行目の指標「WORDDEC:」は、当該WORDDECモジュールの先頭アドレスを示す。2行目のコマンド「DECWM (HL)」によって、HLレジスタで示されるアドレスに格納された値が1以上であれば1だけデクリメントし、0であれば0を維持する。 The index "WORDDEC:" on the first line of Figure 147(b) indicates the starting address of the WORDDEC module. The command "DECWM (HL)" on the second line decrements the value stored in the address indicated by the HL register by 1 if it is 1 or greater, and maintains it at 0 if it is 0.

ここで、コマンド「DECWM (HL)」は、HLレジスタで示されるアドレスに格納された2バイト値をデクリメントし、キャリーフラグが立っていれば(-1となれば)、HLレジスタで示されるアドレスに格納された2バイト値に強制的に0を格納するコマンドである。そうすると、HLレジスタで示されるアドレスに格納された値が1以上であれば1だけデクリメントし、0であれば0を維持することとなる。かかるコマンド「DECWM (HL)」を実行することで、デクリメント後の値がゼロであれば(デクリメント前の値が1または0であれば)、ゼロフラグ(第1ゼロフラグおよび第2ゼロフラグ)を立てて1とし、デクリメント前の値がゼロであれば、キャリーフラグを立てて1とする。かかるコマンドのコマンドサイズは「2」であり、実行サイクルは「7」である。 Here, the command "DECWM (HL)" decrements the 2-byte value stored at the address indicated by the HL register, and if the carry flag is set (-1), it forcibly stores 0 in the 2-byte value stored at the address indicated by the HL register. Then, if the value stored at the address indicated by the HL register is 1 or greater, it is decremented by 1, and if it is 0, it remains 0. By executing this command "DECWM (HL)", if the value after decrement is zero (if the value before decrement is 1 or 0), the zero flags (first zero flag and second zero flag) are set to 1, and if the value before decrement is zero, the carry flag is set to 1. The command size of this command is "2", and the execution cycle is "7".

図147(b)の3行目のコマンド「RET NZ」によって、ゼロフラグが1でなければ(デクリメント後の値がゼロでなければ)、1段上のサブルーチンに戻る。ここでは、コマンド「DECWM (HL)」によって既にデクリメントが行われているので、ゼロフラグが1ではないということは、デクリメント前が2以上であることを示す。その場合、ゼロフラグは立たず0となり、キャリーフラグも立たずに0となるので、1段上のサブルーチンに戻ってもよい。 The command "RET NZ" on the third line of Figure 147(b) causes the program to return to the subroutine one level higher if the zero flag is not 1 (if the value after decrement is not zero). In this case, the command "DECWM (HL)" has already performed a decrement, so the fact that the zero flag is not 1 indicates that the value before the decrement was 2 or greater. In this case, the zero flag is not set and is 0, and the carry flag is also not set and is 0, so the program can return to the subroutine one level higher.

なお、コマンド「DECWM (HL)」では、デクリメント前のHLレジスタで示されるアドレスに格納された値が1であれば、デクリメント後に0となるとともに、ゼロフラグ=1、キャリーフラグ=0となり、0であれば、デクリメントはされず0を維持するとともに、ゼロフラグ=1、キャリーフラグ=1となる。すなわち、キャリーフラグについて、図141に示した仕様と逆になる。そこで、図147(b)の4行目のコマンド「CCF」によって、キャリーフラグを反転(1→0、0→1)させる。なお、コマンド「CCF」によってはゼロフラグは変化しない。こうして、デクリメント前にHLレジスタで示されるアドレスに格納された値が1であれば、ゼロフラグ=1、キャリーフラグ=1とし、0であれば、ゼロフラグ=1、キャリーフラグ=0とすることができる。かかる2~4行目のコマンドが図145(b)のステップS3に対応する。そして、5行目のコマンド「RET」によって、1段上のサブルーチンに戻る。かかる5行目のコマンドが、図145(b)のステップS4に対応する。こうして、HLレジスタで示されるアドレスに格納された値を1だけデクリメントし、かつ、ゼロフラグおよびキャリーフラグを設定することが可能となる。 In the command "DECWM (HL)", if the value stored in the address indicated by the HL register before the decrement is 1, it becomes 0 after the decrement, and the zero flag = 1 and the carry flag = 0. If the value is 0, the decrement is not performed and the zero flag remains 0, and the zero flag = 1 and the carry flag = 1. In other words, the specifications for the carry flag are the opposite of those shown in FIG. 141. Therefore, the command "CCF" on the fourth line of FIG. 147(b) inverts the carry flag (1 → 0, 0 → 1). Note that the command "CCF" does not change the zero flag. In this way, if the value stored in the address indicated by the HL register before the decrement is 1, the zero flag = 1 and the carry flag = 1, and if the value is 0, the zero flag = 1 and the carry flag = 0. The commands on the second to fourth lines correspond to step S3 in FIG. 145(b). Then, the command "RET" on the fifth line returns to the subroutine one level above. The command on the fifth line corresponds to step S4 in FIG. 145(b). In this way, it is possible to decrement the value stored at the address indicated by the HL register by 1 and set the zero flag and carry flag.

続いて、図147(a)の3行目のコマンド「RET NTZ」によって、ゼロフラグ(第2ゼロフラグ)が1でなければ(0であれば)、さらに1段上のサブルーチンに戻る。かかる3行目のコマンドが、図145(a)のステップS5、6に対応する。こうして、WORDDECモジュールの結果に基づいた処理が可能となる。 Next, the command "RET NTZ" on the third line of Fig. 147(a) causes the program to return to the subroutine one level higher if the zero flag (second zero flag) is not 1 (if it is 0). This command on the third line corresponds to steps S5 and S6 in Fig. 145(a). In this way, processing based on the results of the WORDDEC module becomes possible.

図147(b)のWORDDECモジュールのコマンドの総コマンドサイズは、2行目2バイト+3行目1バイト+4行目2バイト+5行目1バイト=6バイトとなり、総実行サイクルは、2行目7サイクル+3行目3サイクル(1サイクル)+4行目2サイクル+6行目3サイクル=15サイクル(13サイクル)となる。なお、括弧内のサイクル数は、コマンド「RET NZ」によって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。したがって、図146(b)の場合と比べ、総コマンドサイズが3バイト削減され、総実行サイクルが少なくとも6サイクル削減される。かかるWORDDECモジュールによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 The total command size of the command of the WORDDEC module in FIG. 147(b) is 2 bytes on line 2 + 1 byte on line 3 + 2 bytes on line 4 + 1 byte on line 5 = 6 bytes, and the total execution cycles are 7 cycles on line 2 + 3 cycles on line 3 (1 cycle) + 2 cycles on line 4 + 3 cycles on line 6 = 15 cycles (13 cycles). The number of cycles in parentheses indicates the execution cycles when the command "RET NZ" does not move to the next higher routine. Therefore, compared to the case in FIG. 146(b), the total command size is reduced by 3 bytes and the total execution cycles are reduced by at least 6 cycles. This WORDDEC module makes it possible to further shorten the command and secure the capacity of the control area for performing game control processing.

また、図146(b)と図147(b)とを比較して理解できるように、図146(b)において5行(2行目~6行目)を占有していたコマンド群を、図147(b)においては3行(2行目~4行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing FIG. 146(b) and FIG. 147(b), the command group that occupies five lines (lines 2 to 6) in FIG. 146(b) can be represented in three lines (lines 2 to 4) in FIG. 147(b), making it possible to reduce the number of commands and lighten the design load.

<コマンド「RCP」>
図148は、サブルーチンから戻る処理の一例を説明するための説明図である。図148(a)におけるコマンド「CP A,n」は、Aレジスタの値と、所定の値nとを比較するコマンドであり、A=nの場合、ゼロフラグが立って1となり、A<nの場合、キャリーフラグが立って1となる。かかるコマンド「CP A,n」のコマンドサイズは「2」であり、実行サイクルは「2」である。
<Command "RCP">
Fig. 148 is an explanatory diagram for explaining an example of a process for returning from a subroutine. The command "CP A,n" in Fig. 148(a) is a command for comparing the value of the A register with a predetermined value n, and when A=n, the zero flag is set to 1, and when A<n, the carry flag is set to 1. The command size of this command "CP A,n" is "2", and the execution cycle is "2".

図148(a)におけるコマンド「RET cc」は、ゼロフラグまたはキャリーフラグを参照し、対象となるフラグが1となっていれば、サブルーチンから1段上のルーチンに戻るコマンドである。かかるコマンド「RET cc」のコマンドサイズは「1」であり、実行サイクルは「3」(または「1」)である。なお、括弧内のサイクル数は、コマンド「RET cc」によって1つ上のルーチンに移動しなかった(サブルーチンから戻らなかった)場合の実行サイクルを示している。 The command "RET cc" in FIG. 148(a) refers to the zero flag or carry flag, and if the target flag is 1, returns from a subroutine to the routine one level higher. The command size of this command "RET cc" is "1", and the execution cycle is "3" (or "1"). Note that the number of cycles in parentheses indicates the execution cycle when the command "RET cc" does not move to the routine one level higher (does not return from the subroutine).

ここでは、図148(a)のように、1行目のコマンド「CP A,n」によって、Aレジスタの値と、所定の値nとを比較し、2行目のコマンド「RET cc」によって、その比較結果に応じてサブルーチンから戻るか否かが決定する。ここで、かかる2つのコマンドを、図148(b)のように、1つのコマンド「RCP cc,A,n」に纏める(置き換える)ことができる。 Here, as shown in Fig. 148(a), the command "CP A,n" on the first line compares the value of the A register with a specified value n, and the command "RET cc" on the second line determines whether to return from the subroutine depending on the comparison result. Here, these two commands can be combined (replaced) into a single command "RCP cc,A,n" as shown in Fig. 148(b).

図148(b)におけるコマンド「RCP cc,A,n」は、Aレジスタの値と、所定の値nとを比較し、その比較結果に応じてサブルーチンから1段上のルーチンに戻るコマンドである。かかるコマンド「RCP cc,A,n」のコマンドサイズは「2」であり、実行サイクルは「5」(または「3」)である。なお、括弧内のサイクル数は、コマンド「RCP cc,A,n」によって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。 The command "RCP cc, A, n" in FIG. 148(b) is a command that compares the value of the A register with a specified value n, and returns from a subroutine to a routine one level higher depending on the result of the comparison. The command size of this command "RCP cc, A, n" is "2", and the execution cycle is "5" (or "3"). Note that the number of cycles in parentheses indicates the execution cycle when the command "RCP cc, A, n" does not move to the routine one level higher.

ここで、図148(a)に示したコマンド群の総コマンドサイズは、1行目のコマンド「CP A,n」2バイト+2行目の「RET cc」1バイト=3バイトとなり、総実行サイクルは、1行目2サイクル+2行目3サイクル(1サイクル)=5サイクル(3サイクル)となる。一方、図148(b)に示したコマンド「RCP cc,A,n」のコマンドサイズは、2バイトとなり、実行サイクルは、5サイクル(3サイクル)となる。したがって、図148(a)のコマンド群を図148(b)のコマンドに置き換えることで、総コマンドサイズが1バイト削減される。かかる置き換えによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。以下、このような置き換えが可能な複数のモジュールをそれぞれ説明する。 Here, the total command size of the command group shown in FIG. 148(a) is 2 bytes of the command "CP A,n" on the first line + 1 byte of "RET cc" on the second line = 3 bytes, and the total execution cycle is 2 cycles on the first line + 3 cycles on the second line (1 cycle) = 5 cycles (3 cycles). On the other hand, the command size of the command "RCP cc,A,n" shown in FIG. 148(b) is 2 bytes, and the execution cycle is 5 cycles (3 cycles). Therefore, by replacing the command group in FIG. 148(a) with the command in FIG. 148(b), the total command size is reduced by 1 byte. This replacement makes it possible to further shorten the command and secure the capacity of the control area for performing game control processing. Below, we will explain each of the multiple modules that can be replaced in this way.

図149は、PY_CMDAモジュールを説明するための説明図である。図149に示したPY_CMDAモジュールは、図23におけるステップS100-63に示した主コマンド解析処理、すなわち、主コマンドを解析し、主コマンドの異常を検出する処理を実行する。 Figure 149 is an explanatory diagram for explaining the PY_CMDA module. The PY_CMDA module shown in Figure 149 executes the main command analysis process shown in step S100-63 in Figure 23, that is, the process of analyzing the main command and detecting any abnormalities in the main command.

図149(a)の1行目の指標「PY_CMDA:」は、当該PY_CMDAモジュールの先頭アドレスを示す。2行目のコマンド「LDQ A,(LOW R_BCR_BUF)」によって、Qレジスタの値をアドレスの上位1バイトとし、主コマンドのバッファ値を格納するアドレス「R_BCR_BUF」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(主コマンド)をAレジスタに読み出す。 The index "PY_CMDA:" on the first line of Figure 149(a) indicates the starting address of the PY_CMDA module. The command "LDQ A, (LOW R_BCR_BUF)" on the second line sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_BCR_BUF" that stores the buffer value of the main command to the lower byte of the address, and reads the value stored at that address (main command) into the A register.

そして、バッファをクリアし、払出起動指定コマンド確認処理を実行すると、受信データ確認処理として、図149(a)の3行目のコマンド「SUB A,@BCR_PAY_CLR」によって、Aレジスタの値から「@BCR_PAY_CLR」で示される固定値、ここでは、20Hを減算する。そして、4行目のコマンド「CP A,00CH」によって、減算されたAレジスタの値と0CHとを比較する。ここでは、主コマンドが20H~2BHの範囲に含まれることを確認している。すなわち、Aレジスタの値が20H未満であれば、コマンド「SUB A,@BCR_PAY_CLR」によってAレジスタの値は負の値になり、1バイト値としてみると0CHより大きくなる。したがって、減算されたAレジスタの値が0CH未満であれば、コマンド「CP A,00CH」によってキャリーフラグが立って1となる。そして、5行目の「RET NC」によって、キャリーフラグが1でなければ、1段上のルーチンに戻る。なお、キャリーフラグが1であれば(20H~2BHの範囲に含まれれば)、払出エラー指定コマンドセット処理および払出電波エラーフラグ設定処理を実行して、1段上のルーチンに戻る。 Then, after clearing the buffer and executing the payout start command confirmation process, the received data confirmation process uses the command "SUB A, @BCR_PAY_CLR" on the third line of Figure 149 (a) to subtract a fixed value indicated by "@BCR_PAY_CLR", here 20H, from the value of the A register. Then, the command "CP A, 00CH" on the fourth line compares the subtracted value of the A register with 0CH. Here, it is confirmed that the main command is within the range of 20H to 2BH. In other words, if the value of the A register is less than 20H, the command "SUB A, @BCR_PAY_CLR" makes the value of the A register negative, and as a byte value it becomes greater than 0CH. Therefore, if the value of the A register after subtraction is less than 0CH, the command "CP A, 00CH" sets the carry flag to 1. Then, the "RET NC" on line 5 causes the program to return to the routine one level above if the carry flag is not 1. If the carry flag is 1 (if it is in the range of 20H to 2BH), the program executes the payout error command set process and the payout radio wave error flag setting process, and then returns to the routine one level above.

ここで、図148の置き換えを行うと、図149(a)のコマンド群を図149(b)のように変更することができる。図149(b)の1行目の指標「PY_CMDA:」は、当該PY_CMDAモジュールの先頭アドレスを示す。1行目のコマンド「LDQ A,(LOW R_BCR_BUF)」によって、Qレジスタの値をアドレスの上位1バイトとし、主コマンドのバッファ値を格納するアドレス「R_BCR_BUF」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(主コマンド)をAレジスタに読み出す。 Now, by making the substitutions in FIG. 148, the group of commands in FIG. 149(a) can be changed to those in FIG. 149(b). The index "PY_CMDA:" on the first line of FIG. 149(b) indicates the starting address of the PY_CMDA module. The command "LDQ A, (LOW R_BCR_BUF)" on the first line sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_BCR_BUF" that stores the buffer value of the main command to the lower byte of the address, and reads the value stored at that address (main command) into the A register.

そして、バッファをクリアし、払出起動指定コマンドに対する所定の処理を実行すると、図149(b)の3行目のコマンド「SUB A,@BCR_PAY_CLR」によって、Aレジスタの値から「@BCR_PAY_CLR」で示される固定値、ここでは、20Hを減算する。4行目のコマンド「RCP NC,A,00CH」によって、減算されたAレジスタの値と0CHとを比較し、キャリーフラグが1でなければ、1段上のルーチンに戻る。ここでは、主コマンドが20H~2BHの範囲に含まれることを確認し、その範囲に入っていなければ、それ以降の処理を行わず1段上のルーチンに戻っている。なお、キャリーフラグが1であれば、払出エラー指定コマンドセット処理および払出電波エラーフラグ設定処理を実行して、1段上のルーチンに戻る。 Then, after clearing the buffer and executing the prescribed processing for the payout start command, the command "SUB A, @BCR_PAY_CLR" on the third line of Fig. 149(b) subtracts the fixed value indicated by "@BCR_PAY_CLR", here 20H, from the value of the A register. The command "RCP NC, A, 00CH" on the fourth line compares the subtracted value of the A register with 0CH, and if the carry flag is not 1, returns to the routine one level higher. Here, it is confirmed that the main command is within the range of 20H to 2BH, and if it is not within that range, no further processing is performed and the routine returns to the routine one level higher. Note that if the carry flag is 1, the payout error command set processing and payout radio wave error flag setting processing are executed, and the routine returns to the routine one level higher.

ここで、図149(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_BCR_BUF)」2バイト+3行目のコマンド「SUB A,@BCR_PAY_CLR」2バイト+4行目のコマンド「CP A,00CH」2バイト+5行目の「RET NC」1バイト=7バイトとなり、総実行サイクルは、2行目3サイクル+3行目2サイクル+4行目2サイクル+5行目3サイクル(1サイクル)=10サイクル(8サイクル)となる。一方、図149(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_BCR_BUF)」2バイト+3行目のコマンド「SUB A,@BCR_PAY_CLR」2バイト+4行目のコマンド「RCP NC,A,00CH」2バイト=6バイトとなり、総実行サイクルは、2行目3サイクル+3行目2サイクル+4行目5サイクル(3サイクル)=10サイクル(8サイクル)となる。したがって、図149(a)のコマンド群を図149(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減される。かかる置き換えによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the command group shown in FIG. 149(a) is 2 bytes of the command "LDQ A, (LOW R_BCR_BUF)" on line 2 + 2 bytes of the command "SUB A, @BCR_PAY_CLR" on line 3 + 2 bytes of the command "CP A, 00CH" on line 4 + 1 byte of "RET NC" on line 5 = 7 bytes, and the total execution cycles are 3 cycles on line 2 + 2 cycles on line 3 + 2 cycles on line 4 + 3 cycles (1 cycle) on line 5 = 10 cycles (8 cycles). On the other hand, the total command size of the command group shown in FIG. 149(b) is 2 bytes of the command "LDQ A, (LOW R_BCR_BUF)" on the second line + 2 bytes of the command "SUB A, @BCR_PAY_CLR" on the third line + 2 bytes of the command "RCP NC, A, 00CH" on the fourth line = 6 bytes, and the total execution cycle is 3 cycles on the second line + 2 cycles on the third line + 5 cycles on the fourth line (3 cycles) = 10 cycles (8 cycles). Therefore, by replacing the command group in FIG. 149(a) with the command group in FIG. 149(b), the total command size is reduced by 1 byte. This replacement makes it possible to further shorten the commands and ensure the capacity of the control area for performing game control processing.

図150は、GAT_PASモジュールを説明するための説明図である。図150に示したGAT_PASモジュールは、図29のステップS510で示したゲートスイッチ通過処理(ゲート通過処理)、すなわち、ゲート検出スイッチ124sでの入賞球の通過に応じて普通図柄保留球数を加算し、普通図柄に関する処理を実行する。 Figure 150 is an explanatory diagram for explaining the GAT_PAS module. The GAT_PAS module shown in Figure 150 performs the gate switch passing process (gate passing process) shown in step S510 of Figure 29, that is, adds the number of reserved balls with normal symbols according to the passing of a winning ball through the gate detection switch 124s, and executes processing related to normal symbols.

記憶カウントチェック処理として、図150(a)の1行目の指標「GAT_PAS:」は、当該GAT_PASモジュールの先頭アドレスを示す。2行目のコマンド「LDQ DE,LOW R_FZ_MEM」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FZ_MEM」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された2バイト値(普通図柄保留球数カウンタのアドレス)をDEレジスタに読み出す。3行目のコマンド「LD A、(DE)」によって、DEレジスタで示されるアドレス(すなわちR_FZ_MEM)に格納された値(普通図柄保留球数カウンタのカウンタ値)をAレジスタに読み出す。 For the memory count check process, the index "GAT_PAS:" on the first line of FIG. 150(a) indicates the starting address of the GAT_PAS module. The command "LDQ DE, LOW R_FZ_MEM" on the second line sets the value of the Q register as the upper byte of the address, sets the value of the lower byte of the address "R_FZ_MEM" as the lower byte of the address, and reads the 2-byte value stored at that address (the address of the regular symbol reserved ball count counter) into the DE register. The command "LD A, (DE)" on the third line reads the value stored at the address indicated by the DE register (i.e., R_FZ_MEM) (the counter value of the regular symbol reserved ball count counter) into the A register.

そして、図150(a)の4行目のコマンド「CP A,@FZ_MEM_MAX」によって、Aレジスタの値と固定値「@FZ_MEM_MAX」、ここでは、「4」とを比較する。すなわち、Aレジスタの値が4未満であれば、キャリーフラグが立って1となる。そして、5行目の「RET NC」によって、キャリーフラグが1でなければ、1段上のルーチンに戻る。すなわち、普通図柄保留球数カウンタのカウンタ値が4以上であれば、それ以上、普通図柄保留球数カウンタを計数することはないので、当該GAT_PASモジュールを終了する。なお、キャリーフラグが1であれば、乱数値取得処理、記憶数加算処理、当たり決定乱数取得処理、転送先アドレス算定処理、および、記憶エリア格納処理を実行して、1段上のルーチンに戻る。 Then, the command "CP A, @FZ_MEM_MAX" on line 4 of FIG. 150(a) compares the value of the A register with the fixed value "@FZ_MEM_MAX", which is "4" in this case. That is, if the value of the A register is less than 4, the carry flag is set to 1. Then, the "RET NC" on line 5 returns to the routine one step above if the carry flag is not 1. That is, if the counter value of the normal symbol reserved ball counter is 4 or more, the normal symbol reserved ball counter will not be counted any further, so the GAT_PAS module is terminated. Note that if the carry flag is 1, the random number value acquisition process, memory number addition process, winning determination random number acquisition process, transfer destination address calculation process, and memory area storage process are executed, and the routine returns to the routine one step above.

ここで、図148の置き換えを行うと、図150(a)のコマンド群を図150(b)のように変更することができる。図150(b)の1行目の指標「GAT_PAS:」は、当該GAT_PASモジュールの先頭アドレスを示す。1行目のコマンド「LDQ DE,LOW R_FZ_MEM」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FZ_MEM」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された2バイト値(普通図柄保留球数カウンタのアドレス)をDEレジスタに読み出す。3行目のコマンド「LD A、(DE)」によって、DEレジスタで示されるアドレス(すなわちR_FZ_MEM)に格納された値(普通図柄保留球数カウンタのカウンタ値)をAレジスタに読み出す。 Now, by making the replacement in FIG. 148, the command group in FIG. 150(a) can be changed to that in FIG. 150(b). The index "GAT_PAS:" on the first line of FIG. 150(b) indicates the starting address of the GAT_PAS module. The command "LDQ DE, LOW R_FZ_MEM" on the first line sets the value of the Q register as the upper byte of the address, sets the value of the lower byte of the address "R_FZ_MEM" as the lower byte of the address, and reads the 2-byte value stored at that address (the address of the regular symbol reserved ball counter) into the DE register. The command "LD A, (DE)" on the third line reads the value stored at the address indicated by the DE register (i.e., R_FZ_MEM) (the counter value of the regular symbol reserved ball counter) into the A register.

そして、図150(b)の4行目のコマンド「RCP NC,A,@FZ_MEM_MAX」によって、Aレジスタの値と@FZ_MEM_MAXとを比較し、Aレジスタの値が@FZ_MEM_MAX以上であれば、1段上のルーチンに戻る。すなわち、普通図柄保留球数カウンタのカウンタ値が4以上であれば、それ以上、普通図柄保留球数カウンタを計数することはないので、当該GAT_PASモジュールを終了する。なお、キャリーフラグが1であれば、記憶数加算処理、当たり決定乱数取得処理、転送先アドレス算定処理、および、記憶エリア格納処理を実行して、1段上のルーチンに戻る。 Then, the command "RCP NC, A, @FZ_MEM_MAX" on the fourth line of Figure 150 (b) compares the value of the A register with @FZ_MEM_MAX, and if the value of the A register is equal to or greater than @FZ_MEM_MAX, the process returns to the routine one level higher. In other words, if the counter value of the normal symbol reserved ball count counter is 4 or greater, the normal symbol reserved ball count counter will not be counted any further, so the GAT_PAS module is terminated. Note that if the carry flag is 1, the memory count addition process, the win determination random number acquisition process, the transfer destination address calculation process, and the memory area storage process are executed, and the process returns to the routine one level higher.

ここで、図150(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ DE,LOW R_FZ_MEM」2バイト+3行目のコマンド「LD A、(DE)」1バイト+4行目のコマンド「CP A,@FZ_MEM_MAX」2バイト+5行目の「RET NC」1バイト=6バイトとなり、総実行サイクルは、2行目2サイクル+3行目2サイクル+4行目2サイクル+5行目3サイクル(1サイクル)=9サイクル(7サイクル)となる。一方、図150(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ DE,LOW R_FZ_MEM」2バイト+3行目のコマンド「LD A、(DE)」1バイト+4行目のコマンド「RCP NC,A,@FZ_MEM_MAX」2バイト=5バイトとなり、総実行サイクルは、2行目2サイクル+3行目2サイクル+4行目5サイクル(3サイクル)=9サイクル(7サイクル)となる。したがって、図150(a)のコマンド群を図150(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減される。かかる置き換えによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the command group shown in Figure 150 (a) is 2 bytes of the command "LDQ DE, LOW R_FZ_MEM" on line 2 + 1 byte of the command "LD A, (DE)" on line 3 + 2 bytes of the command "CP A, @FZ_MEM_MAX" on line 4 + 1 byte of "RET NC" on line 5 = 6 bytes, and the total execution cycles are 2 cycles on line 2 + 2 cycles on line 3 + 2 cycles on line 4 + 3 cycles (1 cycle) on line 5 = 9 cycles (7 cycles). On the other hand, the total command size of the command group shown in FIG. 150(b) is 2 bytes of the command "LDQ DE,LOW R_FZ_MEM" on the second line + 1 byte of the command "LD A, (DE)" on the third line + 2 bytes of the command "RCP NC,A,@FZ_MEM_MAX" on the fourth line = 5 bytes, and the total execution cycle is 2 cycles on the second line + 2 cycles on the third line + 5 cycles (3 cycles) on the fourth line = 9 cycles (7 cycles). Therefore, by replacing the command group in FIG. 150(a) with the command group in FIG. 150(b), the total command size is reduced by 1 byte. This replacement makes it possible to further shorten the commands and ensure the capacity of the control area for performing game control processing.

図151は、TDN_PASモジュールを説明するための説明図である。図151に示したTDN_PASモジュールは、図34のステップS540で示したカウントスイッチ通過処理(大入賞口通過処理)、すなわち、カウントスイッチ判定値に基づいて大入賞口の入賞を管理する処理を実行する。 Figure 151 is an explanatory diagram for explaining the TDN_PAS module. The TDN_PAS module shown in Figure 151 executes the count switch passing process (large prize opening passing process) shown in step S540 of Figure 34, that is, the process of managing the winning of the large prize opening based on the count switch judgment value.

図151(a)の1行目の指標「TDN_PAS:」は、当該TDN_PASモジュールの先頭アドレスを示す。そして、カウントスイッチ判定値確認処理、特別電動役物連続作動回数判定処理、大入賞口入賞指定コマンドセット処理、大入賞口過剰入賞監視処理を実行すると、特別電動役物作動チェック処理として、2行目のコマンド「LDQ A,(LOW R_TDN_PHS)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_TDN_PHS」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(特別電動役物遊技管理フェーズ)をAレジスタに読み出す。 The indicator "TDN_PAS:" on the first line of FIG. 151(a) indicates the starting address of the TDN_PAS module. Then, when the count switch determination value confirmation process, the special electric device continuous operation count determination process, the large prize slot winning designation command set process, and the large prize slot excessive winning monitoring process are executed, the special electric device operation check process uses the command "LDQ A, (LOW R_TDN_PHS)" on the second line to set the value of the Q register as the upper byte of the address, set the value of the lower byte of the address "R_TDN_PHS" as the lower byte of the address, and read the value stored at that address (special electric device play management phase) into the A register.

図151(a)の3行目のコマンド「JCP Z,A,@TD_OPN_BHT,TDN_PAS_10」によって、Aレジスタの値と固定値「@TD_OPN_BHT」、ここでは、2と比較し、その結果が等しければ、アドレス「TDN_PAS_10」に移動する。こうして、Aレジスタの値が大当たり大入賞口開放制御状態指定値(特別電動役物遊技管理フェーズが02H)であれば、以降の処理を省略して6行目の指標「TDN_PAS_10:」に移動することができる。4行目のコマンド「CP A,@TD_OPN_SHT」によって、Aレジスタの値と、小当たり大入賞口開放制御状態指定値を示す固定値「@TD_OPN_SHT」、ここでは、6とを比較し、等しければ(特別電動役物遊技管理フェーズが06H)、ゼロフラグが立って1となる。そして、5行目の「RET NZ」によって、ゼロフラグが1でなければ、1段上のルーチンに戻る。すなわち、Aレジスタの値が大当たり大入賞口開放制御状態指定値および小当たり大入賞口開放制御状態指定値でなければ、当該TDN_PASモジュールを終了する。なお、ゼロフラグが1であれば、特別電動役物入賞球数カウント処理、特電不正入賞検出条件確認処理、および、特電不正入賞エラー時処理を実行して、1段上のルーチンに戻る。 The command "JCP Z, A, @TD_OPN_BHT, TDN_PAS_10" on the third line of FIG. 151(a) compares the value of the A register with the fixed value "@TD_OPN_BHT", here 2, and if the results are equal, moves to the address "TDN_PAS_10". In this way, if the value of the A register is the big win large prize opening control state designation value (special electric role game play management phase is 02H), the subsequent processing can be omitted and it can move to the index "TDN_PAS_10:" on the sixth line. The command "CP A, @TD_OPN_SHT" on the fourth line compares the value of the A register with the fixed value "@TD_OPN_SHT", here 6, which indicates the small win large prize opening control state designation value, and if they are equal (special electric role game play management phase is 06H), the zero flag is set to 1. Then, by "RET NZ" on the fifth line, if the zero flag is not 1, it returns to the routine one step above. In other words, if the value of the A register is not the large jackpot large prize opening control state designation value or the small jackpot large prize opening control state designation value, the TDN_PAS module is terminated. Note that if the zero flag is 1, it executes the special electric device winning ball count process, the special electric illegal winning detection condition confirmation process, and the special electric illegal winning error process, and then returns to the routine one step above.

ここで、図148の置き換えを行うと、図151(a)のコマンド群を図151(b)のように変更することができる。図151(b)の1行目の指標「TDN_PAS:」は、当該TDN_PASモジュールの先頭アドレスを示す。そして、カウントスイッチ判定値確認処理、特別電動役物連続作動回数判定処理、大入賞口入賞指定コマンドセット処理、大入賞口過剰入賞監視処理を実行すると、2行目のコマンド「LDQ A,(LOW R_TDN_PHS)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_TDN_PHS」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(特別電動役物遊技管理フェーズ)をAレジスタに読み出す。 Now, by making the replacement in FIG. 148, the command group in FIG. 151(a) can be changed to that in FIG. 151(b). The indicator "TDN_PAS:" on the first line of FIG. 151(b) indicates the starting address of the TDN_PAS module. Then, when the count switch determination value confirmation process, the special electric device continuous operation count determination process, the large prize opening winning designation command set process, and the large prize opening excessive winning monitoring process are executed, the command "LDQ A, (LOW R_TDN_PHS)" on the second line sets the value of the Q register to the upper byte of the address, and the value of the lower byte of the address "R_TDN_PHS" to the lower byte of the address, and the value stored in that address (special electric device play management phase) is read into the A register.

図151(b)の3行目のコマンド「JCP Z,A,@TD_OPN_BHT,TDN_PAS_10」によって、Aレジスタの値と固定値「@TD_OPN_BHT」、ここでは、2と比較し、その結果が等しければ、アドレス「TDN_PAS_10」に移動する。こうして、Aレジスタの値が大当たり大入賞口開放制御状態指定値であれば、以降の処理を省略して5行目の指標「TDN_PAS_10:」に移動することができる。4行目のコマンド「RCP NZ,A,@TD_OPN_SHT」によって、Aレジスタの値と、小当たり大入賞口開放制御状態指定値を示す固定値「@TD_OPN_SHT」、ここでは、6とを比較し、等しければ、1段上のルーチンに戻る。すなわち、Aレジスタの値が大当たり大入賞口開放制御状態指定値および小当たり大入賞口開放制御状態指定値でなければ、当該TDN_PASモジュールを終了する。なお、ゼロフラグが0であれば、特別電動役物入賞球数カウント処理、特電不正入賞検出条件確認処理、および、特電不正入賞エラー時処理を実行して、1段上のルーチンに戻る。 The command "JCP Z, A, @TD_OPN_BHT, TDN_PAS_10" on the third line of Figure 151 (b) compares the value of the A register with a fixed value "@TD_OPN_BHT", here 2, and if the results are equal, moves to address "TDN_PAS_10". In this way, if the value of the A register is the large prize opening control state designation value for the big win, the subsequent processing can be omitted and the program can move to the index "TDN_PAS_10:" on the fifth line. The command "RCP NZ, A, @TD_OPN_SHT" on the fourth line compares the value of the A register with the fixed value "@TD_OPN_SHT", here 6, which indicates the small prize opening control state designation value, and if they are equal, returns to the routine one level above. In other words, if the value of the A register is not the large jackpot opening control state designation value or the small jackpot opening control state designation value, the TDN_PAS module is terminated. If the zero flag is 0, the special electric device winning ball count process, the special line illegal winning detection condition confirmation process, and the special line illegal winning error process are executed, and the routine returns to the next higher level.

ここで、図151(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_TDN_PHS)」2バイト+3行目のコマンド「JCP Z,A,@TD_OPN_BHT,TDN_PAS_10」3バイト+4行目のコマンド「CP A,@TD_OPN_SHT」2バイト+5行目の「RET NZ」1バイト=8バイトとなり、総実行サイクルは、2行目3サイクル+3行目4サイクル(または3サイクル)+4行目2サイクル+5行目3サイクル(1サイクル)=12サイクル(9サイクル)となる。一方、図151(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_TDN_PHS)」2バイト+3行目のコマンド「JCP Z,A,@TD_OPN_BHT,TDN_PAS_10」3バイト+4行目のコマンド「RCP NZ,A,@TD_OPN_SHT」2バイト=7バイトとなり、総実行サイクルは、2行目3サイクル+3行目4サイクル(または3サイクル)+4行目5サイクル(3サイクル)=12サイクル(9サイクル)となる。したがって、図151(a)のコマンド群を図151(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減される。かかる置き換えによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the command group shown in Figure 151 (a) is 2 bytes of the command "LDQ A, (LOW R_TDN_PHS)" on line 2 + 3 bytes of the command "JCP Z, A, @TD_OPN_BHT, TDN_PAS_10" on line 3 + 2 bytes of the command "CP A, @TD_OPN_SHT" on line 4 + 1 byte of "RET NZ" on line 5 = 8 bytes, and the total execution cycles are 3 cycles on line 2 + 4 cycles (or 3 cycles) on line 3 + 2 cycles on line 4 + 3 cycles (1 cycle) on line 5 = 12 cycles (9 cycles). On the other hand, the total command size of the command group shown in FIG. 151(b) is 2 bytes of the command "LDQ A, (LOW R_TDN_PHS)" on the second line + 3 bytes of the command "JCP Z, A, @TD_OPN_BHT, TDN_PAS_10" on the third line + 2 bytes of the command "RCP NZ, A, @TD_OPN_SHT" on the fourth line = 7 bytes, and the total execution cycle is 3 cycles on the second line + 4 cycles (or 3 cycles) on the third line + 5 cycles (3 cycles) on the fourth line = 12 cycles (9 cycles). Therefore, by replacing the command group in FIG. 151(a) with the command group in FIG. 151(b), the total command size is reduced by 1 byte. Such replacement makes it possible to further shorten the commands and secure the capacity of the control area for performing game control processing.

図152は、FD_OPNモジュールを説明するための説明図である。図152に示したFD_OPNモジュールは、図57のステップ850で示した普通電動役物入賞口開放制御処理、すなわち、普通電動役物に関する入賞数および作動時間に対する第1可変始動口120Bの開閉御処理を実行する。 Figure 152 is an explanatory diagram for explaining the FD_OPN module. The FD_OPN module shown in Figure 152 executes the normal electric device winning opening opening control process shown in step 850 of Figure 57, that is, the opening and closing control process of the first variable start opening 120B for the number of winnings and operation time related to the normal electric device.

図152(a)の1行目の指標「FD_OPN:」は、当該FD_OPNモジュールの先頭アドレスを示す。そして、普通電動役物入賞口開閉動作切替処理を実行すると、規定入賞数確認処理として、2行目のコマンド「LDQ A,(LOW R_FDN_CNT)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FDN_CNT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(普通電動役物入賞球数カウンタのカウンタ値)をAレジスタに読み出す。 The indicator "FD_OPN:" on the first line of FIG. 152(a) indicates the starting address of the FD_OPN module. Then, when the normal electric device winning opening/closing operation switching process is executed, the command "LDQ A, (LOW R_FDN_CNT)" on the second line is used as the specified winning number confirmation process, and the value of the Q register becomes the upper byte of the address, and the value of the lower byte of the address "R_FDN_CNT" becomes the lower byte of the address, and the value stored at that address (the counter value of the normal electric device winning ball count counter) is read into the A register.

図152(a)の3行目のコマンド「CP A,@FDN_CNT」によって、Aレジスタの値と、普通電動役物に係る入賞口入賞球数の最大値を示す固定値「@FDN_CNT」、ここでは、8とを比較し、8未満であれば、キャリーフラグが立って1となる。そして、4行目の「RET C」によって、キャリーフラグが1であれば、1段上のルーチンに戻る。すなわち、Aレジスタの値が普通電動役物に係る入賞口入賞球数未満であれば、当該FD_OPNモジュールを終了する。なお、キャリーフラグが0であれば、普通電動役物作動終了時設定処理を実行して、1段上のルーチンに戻る。 The command "CP A, @FDN_CNT" on the third line of Fig. 152(a) compares the value of the A register with the fixed value "@FDN_CNT" (8 in this case) which indicates the maximum number of winning balls in the winning slot for normal electric roles, and if it is less than 8, the carry flag is set to 1. Then, "RET C" on the fourth line returns to the routine one level higher if the carry flag is 1. In other words, if the value of the A register is less than the number of winning balls in the winning slot for normal electric roles, the FD_OPN module is terminated. Note that if the carry flag is 0, the normal electric role operation end setting process is executed and the routine returns to the routine one level higher.

ここで、図148の置き換えを行うと、図152(a)のコマンド群を図152(b)のように変更することができる。図152(b)の1行目の指標「FD_OPN:」は、当該FD_OPNモジュールの先頭アドレスを示す。そして、普通電動役物入賞口開閉動作切替処理を実行すると、規定入賞数確認処理として、2行目のコマンド「LDQ A,(LOW R_FDN_CNT)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FDN_CNT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(普通電動役物入賞球数カウンタのカウンタ値)をAレジスタに読み出す。 Now, by making the substitutions in FIG. 148, the group of commands in FIG. 152(a) can be changed to those in FIG. 152(b). The indicator "FD_OPN:" on the first line of FIG. 152(b) indicates the starting address of the FD_OPN module. Then, when the normal electric device winning opening/closing operation switching process is executed, the command "LDQ A, (LOW R_FDN_CNT)" on the second line is used as the specified number of winning confirmation process, and the value of the Q register is made the upper byte of the address, and the value of the lower byte of the address "R_FDN_CNT" is made the lower byte of the address, and the value stored at that address (the counter value of the normal electric device winning ball count counter) is read into the A register.

図152(b)の3行目のコマンド「RCP C,A,@FDN_CNT」によって、Aレジスタの値と、普通電動役物に係る入賞口入賞球数の最大値を示す固定値「@FDN_CNT」、ここでは、8とを比較し、8未満であれば、1段上のルーチンに戻る。すなわち、Aレジスタの値が普通電動役物に係る入賞口入賞球数未満であれば、当該FD_OPNモジュールを終了する。なお、キャリーフラグが0であれば、普通電動役物作動終了時設定処理を実行して、1段上のルーチンに戻る。 The command "RCP C, A, @FDN_CNT" on the third line of Fig. 152 (b) compares the value of the A register with the fixed value "@FDN_CNT" (8 in this case) which indicates the maximum number of winning balls that can enter the winning slot for normal electric devices, and if it is less than 8, it returns to the routine one level higher. In other words, if the value of the A register is less than the number of winning balls that can enter the winning slot for normal electric devices, the FD_OPN module is terminated. Note that if the carry flag is 0, the normal electric device operation end setting process is executed and the routine returns to the routine one level higher.

ここで、図152(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_FDN_CNT)」2バイト+3行目のコマンド「CP A,@FDN_CNT」2バイト+4行目の「RET C」1バイト=5バイトとなり、総実行サイクルは、2行目3サイクル+3行目2サイクル+4行目3サイクル(1サイクル)=8サイクル(6サイクル)となる。一方、図152(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_FDN_CNT)」2バイト+3行目のコマンド「RCP C,A,@FDN_CNT」2バイト=4バイトとなり、総実行サイクルは、2行目3サイクル+3行目5サイクル(3サイクル)=8サイクル(6サイクル)となる。したがって、図152(a)のコマンド群を図152(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減される。かかる置き換えによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the command group shown in FIG. 152(a) is 2 bytes of the command "LDQ A, (LOW R_FDN_CNT)" on the second line + 2 bytes of the command "CP A, @FDN_CNT" on the third line + 1 byte of "RET C" on the fourth line = 5 bytes, and the total execution cycle is 3 cycles on the second line + 2 cycles on the third line + 3 cycles (1 cycle) on the fourth line = 8 cycles (6 cycles). On the other hand, the total command size of the command group shown in FIG. 152(b) is 2 bytes of the command "LDQ A, (LOW R_FDN_CNT)" on the second line + 2 bytes of the command "RCP C, A, @FDN_CNT" on the third line = 4 bytes, and the total execution cycle is 3 cycles on the second line + 5 cycles (3 cycles) on the third line = 8 cycles (6 cycles). Therefore, by replacing the command group in FIG. 152(a) with the command group in FIG. 152(b), the total command size is reduced by 1 byte. This replacement makes it possible to further shorten the commands and ensure the capacity of the control area for performing game control processing.

図153は、TZ_STAモジュールを説明するための説明図である。図153に示したTZ_STAモジュールは、図37のステップS610で示した特別図柄変動待ち処理、すなわち、特別図柄保留球数に基づいて特別図柄変動の準備処理を実行する。 Figure 153 is an explanatory diagram for explaining the TZ_STA module. The TZ_STA module shown in Figure 153 executes the special symbol change waiting process shown in step S610 of Figure 37, that is, the preparation process for the special symbol change based on the number of balls reserved for the special symbol.

図153(a)の1行目の指標「TZ_STA:」は、当該TZ_STAモジュールの先頭アドレスを示す。そして、特別図柄保留球数確認処理を実行すると、処理非対象特図状態確認処理として、2行目のコマンド「RST DATSEL」によって、汎用モジュールであるDATSELモジュールが呼び出され、制御データの選択結果がAレジスタに格納される。 The index "TZ_STA:" on the first line of Figure 153 (a) indicates the starting address of the TZ_STA module. Then, when the special symbol reserved ball count confirmation process is executed, the command "RST DATSEL" on the second line calls the DATSEL module, which is a general-purpose module, as a process to confirm the status of the special symbol that is not subject to processing, and the selection result of the control data is stored in the A register.

図153(a)の3行目のコマンド「CP A,@TZ_BHT」によって、Aレジスタの値と、特別図柄大当たり情報を示す固定値「@TZ_BHT」、ここでは、01Hとを比較し、01Hと等しければ、ゼロフラグが立って1となる。そして、4行目の「RET Z」によって、ゼロフラグが1であれば、1段上のルーチンに戻る。すなわち、大当たり確定中であれば、当該TZ_STAモジュールを終了する。5行目のコマンド「CP A,@TZ_SHT」によって、Aレジスタの値と、特別図柄小当たり情報を示す固定値「@TZ_SHT」、ここでは、02Hとを比較し、02Hと等しければ、ゼロフラグが立って1となる。そして、6行目の「RET Z」によって、ゼロフラグが1であれば、1段上のルーチンに戻る。すなわち、小当たり確定中であれば、当該TZ_STAモジュールを終了する。なお、ゼロフラグが1でなければ、特別図柄変動開始時設定処理、回数コマンドセット処理、および、特別図柄変動準備処理を実行して、1段上のルーチンに戻る。 The command "CP A, @TZ_BHT" on the third line of FIG. 153(a) compares the value of the A register with the fixed value "@TZ_BHT" indicating the special symbol big win information, here 01H, and if it is equal to 01H, the zero flag is set to 1. Then, the "RET Z" on the fourth line returns to the routine one step above if the zero flag is 1. In other words, if the big win is confirmed, the TZ_STA module is terminated. The command "CP A, @TZ_SHT" on the fifth line compares the value of the A register with the fixed value "@TZ_SHT" indicating the special symbol small win information, here 02H, and if it is equal to 02H, the zero flag is set to 1. Then, the "RET Z" on the sixth line returns to the routine one step above if the zero flag is 1. In other words, if the small win is confirmed, the TZ_STA module is terminated. If the zero flag is not 1, the special symbol change start setting process, the number of times command set process, and the special symbol change preparation process are executed, and the process returns to the routine one step above.

ここで、図148の置き換えを行うと、図153(a)のコマンド群を図153(b)のように変更することができる。図153(b)の1行目の指標「TZ_STA:」は、当該TZ_STAモジュールの先頭アドレスを示す。そして、特別図柄保留球数確認処理を実行すると、処理非対象特図状態確認処理として、2行目のコマンド「RST DATSEL」によって、DATSELモジュールが呼び出され、制御データの選択結果がAレジスタに格納される。 Now, by making the replacement in FIG. 148, the group of commands in FIG. 153(a) can be changed to that in FIG. 153(b). The index "TZ_STA:" on the first line of FIG. 153(b) indicates the starting address of the TZ_STA module. Then, when the process to check the number of reserved balls for a special symbol is executed, the command "RST DATSEL" on the second line calls the DATSEL module as a process to check the status of special symbols not subject to processing, and the selection result of the control data is stored in the A register.

図153(b)の3行目のコマンド「RCP Z,A,@TZ_BHT」によって、Aレジスタの値と、特別図柄大当たり情報を示す固定値「@TZ_BHT」、ここでは、01Hとが比較され、01Hと等しければ、1段上のルーチンに戻る。すなわち、大当たり確定中であれば、当該TZ_STAモジュールを終了する。4行目のコマンド「RCP Z,A,@TZ_SHT」によって、Aレジスタの値と、特別図柄小当たり情報を示す固定値「@TZ_SHT」、ここでは、02Hとが比較され、02Hと等しければ、1段上のルーチンに戻る。すなわち、小当たり確定中であれば、当該TZ_STAモジュールを終了する。なお、ゼロフラグが1でなければ、特別図柄変動開始時設定処理、回数コマンドセット処理、および、特別図柄変動準備処理を実行して、1段上のルーチンに戻る。 The command "RCP Z, A, @TZ_BHT" on the third line of FIG. 153(b) compares the value of the A register with the fixed value "@TZ_BHT" indicating the special symbol big win information, here 01H, and if it is equal to 01H, returns to the routine one step above. In other words, if the big win is confirmed, the TZ_STA module is terminated. The command "RCP Z, A, @TZ_SHT" on the fourth line compares the value of the A register with the fixed value "@TZ_SHT" indicating the special symbol small win information, here 02H, and if it is equal to 02H, returns to the routine one step above. In other words, if the small win is confirmed, the TZ_STA module is terminated. Note that if the zero flag is not 1, the special symbol change start time setting process, the number of times command set process, and the special symbol change preparation process are executed, and the routine one step above is returned to.

ここで、図153(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「RST DATSEL」1バイト+3行目のコマンド「CP A,@TZ_BHT」2バイト+4行目の「RET Z」1バイト+5行目のコマンド「CP A,@TZ_SHT」2バイト+6行目の「RET Z」1バイト=7バイトとなり、総実行サイクルは、2行目4サイクル+3行目2サイクル+4行目3サイクル(1サイクル)+5行目2サイクル+6行目3サイクル(1サイクル)=14サイクル(10サイクル)となる。一方、図153(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「RST DATSEL」1バイト+3行目のコマンド「RCP Z,A,@TZ_BHT」2バイト+4行目のコマンド「RCP Z,A,@TZ_SHT」2バイト=5バイトとなり、総実行サイクルは、2行目4サイクル+3行目5サイクル(3サイクル)+4行目5サイクル(3サイクル)=14サイクル(10サイクル)となる。したがって、図153(a)のコマンド群を図153(b)のコマンド群に置き換えることで、総コマンドサイズが2バイト削減される。かかる置き換えによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the command group shown in Figure 153 (a) is 1 byte of the command "RST DATSEL" on line 2 + 2 bytes of the command "CP A, @TZ_BHT" on line 3 + 1 byte of the command "RET Z" on line 4 + 2 bytes of the command "CP A, @TZ_SHT" on line 5 + 1 byte of "RET Z" on line 6 = 7 bytes, and the total execution cycles are 4 cycles on line 2 + 2 cycles on line 3 + 3 cycles (1 cycle) on line 4 + 2 cycles on line 5 + 3 cycles (1 cycle) on line 6 = 14 cycles (10 cycles). On the other hand, the total command size of the command group shown in FIG. 153(b) is 1 byte of the command "RST DATSEL" on the second line + 2 bytes of the command "RCP Z, A, @TZ_BHT" on the third line + 2 bytes of the command "RCP Z, A, @TZ_SHT" on the fourth line = 5 bytes, and the total execution cycle is 4 cycles on the second line + 5 cycles (3 cycles) on the third line + 5 cycles (3 cycles) on the fourth line = 14 cycles (10 cycles). Therefore, by replacing the command group in FIG. 153(a) with the command group in FIG. 153(b), the total command size is reduced by 2 bytes. This replacement makes it possible to further shorten the commands and ensure the capacity of the control area for performing game control processing.

図154は、TZ_RGETモジュールを説明するための説明図である。図154に示したTZ_RGETモジュールは、図32のステップS535で示した特別図柄乱数取得処理、すなわち、乱数値をレジスタに入力し、保留球数が上限数ではない場合のみ転送用バッファにレジスタの乱数値を格納する処理を実行する。 Figure 154 is an explanatory diagram for explaining the TZ_RGET module. The TZ_RGET module shown in Figure 154 executes the special symbol random number acquisition process shown in step S535 of Figure 32, that is, the process of inputting a random number value into a register and storing the random number value in the register in the transfer buffer only if the number of reserved balls is not the upper limit number.

図154(a)の1行目の指標「TZ_RGET:」は、当該TZ_RGETモジュールの先頭アドレスを示す。大当たり決定乱数取得処理を実行し、特別図柄保留球数更新処理として、2行目のコマンド「LD A、(DE)」によって、DEレジスタで示されるアドレスに格納された値(対象特別図柄保留球数カウンタのカウンタ値)をAレジスタに読み出す。なお、当該TZ_RGETモジュールが呼び出されるときにDEレジスタには予め対象特別図柄保留球数カウンタのカウンタ値を示すアドレスが格納されているとする。 The indicator "TZ_RGET:" on the first line of Figure 154 (a) indicates the starting address of the TZ_RGET module. The jackpot determination random number acquisition process is executed, and the value stored at the address indicated by the DE register (the counter value of the target special pattern reserved ball count counter) is read into the A register by the command "LD A, (DE)" on the second line as the special pattern reserved ball count update process. Note that when the TZ_RGET module is called, the DE register already stores an address indicating the counter value of the target special pattern reserved ball count counter.

そして、図154(a)の3行目のコマンド「CP A,@TZ_MEM_MAX」によって、Aレジスタの値と、特別図柄保留球数上限値を示す固定値「@TZ_MEM_MAX」、ここでは、「4」とを比較する。すなわち、Aレジスタの値が4未満であれば、キャリーフラグが立って1となる。そして、4行目の「RET NC」によって、キャリーフラグが1でなければ、1段上のルーチンに戻る。すなわち、対象特別図柄保留球数カウンタのカウンタ値が4以上であれば、それ以上、対象特別図柄保留球数カウンタを計数することはないので、当該TZ_RGETモジュールを終了する。なお、キャリーフラグが1であれば、変動パターン乱数取得処理、リーチグループ決定乱数取得処理、リーチモード決定乱数取得処理、転送先アドレス算定処理、記憶エリア格納処理、取得時演出判定処理、および、特図保留指定コマンドセット処理を実行して、1段上のルーチンに戻る。 Then, the command "CP A, @TZ_MEM_MAX" on the third line of FIG. 154(a) compares the value of the A register with the fixed value "@TZ_MEM_MAX" indicating the upper limit of the number of reserved balls for special symbols, which is "4" here. That is, if the value of the A register is less than 4, the carry flag is set to 1. Then, the "RET NC" on the fourth line returns to the routine one step above if the carry flag is not 1. That is, if the counter value of the target special reserved ball counter is 4 or more, the target special reserved ball counter will not be counted any further, so the TZ_RGET module is terminated. Note that if the carry flag is 1, the variable pattern random number acquisition process, reach group determination random number acquisition process, reach mode determination random number acquisition process, transfer destination address calculation process, memory area storage process, acquisition time performance judgment process, and special reserved designation command set process are executed, and the routine returns to the routine one step above.

ここで、図148の置き換えを行うと、図154(a)のコマンド群を図154(b)のように変更することができる。図154(b)の1行目の指標「TZ_RGET:」は、当該TZ_RGETモジュールの先頭アドレスを示す。大当たり決定乱数取得処理を実行し、特別図柄保留球数更新処理として、2行目のコマンド「LD A、(DE)」によって、DEレジスタで示されるアドレス(すなわちR_FZ_MEM)に格納された値(対象特別図柄保留球数カウンタのカウンタ値)をAレジスタに読み出す。 Now, by making the substitutions in FIG. 148, the group of commands in FIG. 154(a) can be changed to that in FIG. 154(b). The index "TZ_RGET:" on the first line of FIG. 154(b) indicates the starting address of the TZ_RGET module. The jackpot determination random number acquisition process is executed, and as the special symbol reserved ball count update process, the value stored at the address indicated by the DE register (i.e., the counter value of the target special symbol reserved ball count counter) is read into the A register by the command "LD A, (DE)" on the second line.

そして、図154(b)の3行目のコマンド「RCP NC,A,@TZ_MEM_MAX」によって、Aレジスタの値と、特別図柄保留球数上限値を示す固定値「@TZ_MEM_MAX」、ここでは、「4」とを比較し、Aレジスタの値が4以上であれば、1段上のルーチンに戻る。すなわち、対象特別図柄保留球数カウンタのカウンタ値が4以上であれば、それ以上、対象特別図柄保留球数カウンタを計数することはないので、当該TZ_RGETモジュールを終了する。なお、Aレジスタの値が4未満であれば、変動パターン乱数取得処理、リーチグループ決定乱数取得処理、リーチモード決定乱数取得処理、転送先アドレス算定処理、記憶エリア格納処理、取得時演出判定処理、および、特図保留指定コマンドセット処理を実行して、1段上のルーチンに戻る。 Then, the command "RCP NC, A, @TZ_MEM_MAX" on the third line of FIG. 154(b) compares the value of the A register with the fixed value "@TZ_MEM_MAX" indicating the upper limit of the number of reserved balls for special symbols, "4" in this case, and if the value of the A register is 4 or more, the process returns to the routine one step above. In other words, if the counter value of the reserved ball count counter for the target special symbol is 4 or more, the target reserved ball count counter will not be counted any further, so the TZ_RGET module is terminated. Note that if the value of the A register is less than 4, the process executes the variable pattern random number acquisition process, reach group determination random number acquisition process, reach mode determination random number acquisition process, transfer destination address calculation process, memory area storage process, acquisition time performance judgment process, and special symbol reserved designation command set process, and returns to the routine one step above.

ここで、図154(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LD A、(DE)」1バイト+3行目のコマンド「CP A,@TZ_MEM_MAX」2バイト+4行目の「RET NC」1バイト=4バイトとなり、総実行サイクルは、2行目2サイクル+3行目2サイクル+4行目3サイクル(1サイクル)=7サイクル(5サイクル)となる。一方、図154(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LD A、(DE)」1バイト+3行目のコマンド「RCP NC,A,@TZ_MEM_MAX」2バイト=3バイトとなり、総実行サイクルは、2行目2サイクル+3行目5サイクル(3サイクル)=7サイクル(5サイクル)となる。したがって、図154(a)のコマンド群を図154(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減される。かかる置き換えによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the command group shown in FIG. 154(a) is 1 byte of the command "LD A, (DE)" on the second line + 2 bytes of the command "CP A, @TZ_MEM_MAX" on the third line + 1 byte of "RET NC" on the fourth line = 4 bytes, and the total execution cycle is 2 cycles on the second line + 2 cycles on the third line + 3 cycles on the fourth line (1 cycle) = 7 cycles (5 cycles). On the other hand, the total command size of the command group shown in FIG. 154(b) is 1 byte of the command "LD A, (DE)" on the second line + 2 bytes of the command "RCP NC, A, @TZ_MEM_MAX" on the third line = 3 bytes, and the total execution cycle is 2 cycles on the second line + 5 cycles on the third line (3 cycles) = 7 cycles (5 cycles). Therefore, by replacing the command group in FIG. 154(a) with the command group in FIG. 154(b), the total command size is reduced by 1 byte. This replacement makes it possible to further shorten commands and secure the capacity of the control area for carrying out game control processing.

図155は、TRSVSELモジュールを説明するための説明図である。図155に示したTRSVSELモジュールは、図37のステップS610-17で示される予備領域設定処理、すなわち、特別図柄当たりを確認し、特別図柄確率状態や特別図柄状態の予備設定処理を実行する。 Figure 155 is an explanatory diagram for explaining the TRSVSEL module. The TRSVSEL module shown in Figure 155 executes the preliminary area setting process shown in step S610-17 of Figure 37, that is, checks the special symbol win and executes preliminary setting process for the special symbol probability state and special symbol state.

図155(a)の1行目の指標「TRSVSEL:」は、当該TRSVSELモジュールの先頭アドレスを示す。そして、状態オフセットチェックフラグ設定処理を実行すると、特別図柄当たり確認処理として、2行目のコマンド「RST DATSEL」によって、汎用モジュールであるDATSELモジュールが呼び出され、制御データの選択結果がAレジスタに格納される。 The indicator "TRSVSEL:" on the first line of Figure 155 (a) indicates the starting address of the TRSVSEL module. Then, when the state offset check flag setting process is executed, the command "RST DATSEL" on the second line calls the DATSEL module, which is a general-purpose module, as a special symbol winning confirmation process, and the selection result of the control data is stored in the A register.

図155(a)の3行目のコマンド「CP A,@TZ_BHT」によって、Aレジスタの値と、特別図柄大当たり情報を示す固定値「@TZ_BHT」、ここでは、01Hとを比較し、01Hと等しければ、ゼロフラグが立って1となる。そして、4行目の「RET NZ」によって、ゼロフラグが1でなければ、1段上のルーチンに戻る。すなわち、大当たり確定中でなければ、当該TRSVSELモジュールを終了する。なお、ゼロフラグが1であれば、特別図柄確率状態予備設定処理、および、特別図柄状態予備設定処理を実行して、1段上のルーチンに戻る。 The command "CP A, @TZ_BHT" on the third line of Fig. 155(a) compares the value of the A register with the fixed value "@TZ_BHT" indicating the special symbol jackpot information, here 01H, and if it is equal to 01H, the zero flag is set to 1. Then, the "RET NZ" on the fourth line returns to the routine one level higher if the zero flag is not 1. In other words, if the jackpot is not confirmed, the TRSVSEL module is terminated. Note that if the zero flag is 1, the special symbol probability state preliminary setting process and the special symbol state preliminary setting process are executed, and the routine one level higher is returned to.

ここで、図148の置き換えを行うと、図155(a)のコマンド群を図155(b)のように変更することができる。図155(b)の1行目の指標「TRSVSEL:」は、当該TRSVSELモジュールの先頭アドレスを示す。そして、状態オフセットチェックフラグ設定処理を実行すると、特別図柄当たり確認処理として、2行目のコマンド「RST DATSEL」によって、DATSELモジュールが呼び出され、制御データの選択結果がAレジスタに格納される。 Now, by making the substitutions in FIG. 148, the command group in FIG. 155(a) can be changed to that in FIG. 155(b). The indicator "TRSVSEL:" on the first line of FIG. 155(b) indicates the starting address of the TRSVSEL module. Then, when the state offset check flag setting process is executed, the DATSEL module is called by the command "RST DATSEL" on the second line as a special symbol winning confirmation process, and the selection result of the control data is stored in the A register.

図155(b)の3行目のコマンド「RCP NZ,A,@TZ_BHT」によって、Aレジスタの値と、特別図柄大当たり情報を示す固定値「@TZ_BHT」、ここでは、01Hとを比較し、01Hと等しくなければ、1段上のルーチンに戻る。すなわち、大当たり確定中でなければ、当該TRSVSELモジュールを終了する。なお、01Hと等しければ、特別図柄確率状態予備設定処理、および、特別図柄状態予備設定処理を実行して、1段上のルーチンに戻る。 The command "RCP NZ, A, @TZ_BHT" on the third line of Fig. 155 (b) compares the value of the A register with the fixed value "@TZ_BHT" indicating the special symbol jackpot information, here 01H, and if it is not equal to 01H, it returns to the routine one level higher. In other words, if the jackpot is not confirmed, the TRSVSEL module is terminated. Note that if it is equal to 01H, the special symbol probability state preliminary setting process and the special symbol state preliminary setting process are executed, and the routine returns to the routine one level higher.

ここで、図155(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「RST DATSEL」1バイト+3行目のコマンド「CP A,@TZ_BHT」2バイト+4行目の「RET NZ」1バイト=4バイトとなり、総実行サイクルは、2行目4サイクル+3行目2サイクル+4行目3サイクル(1サイクル)=9サイクル(7サイクル)となる。一方、図155(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「RST DATSEL」1バイト+3行目のコマンド「RCP NZ,A,@TZ_BHT」2バイト=3バイトとなり、総実行サイクルは、2行目4サイクル+3行目5サイクル(3サイクル)=9サイクル(7サイクル)となる。したがって、図155(a)のコマンド群を図155(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減される。かかる置き換えによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the command group shown in FIG. 155(a) is 1 byte of the command "RST DATSEL" on the second line + 2 bytes of the command "CP A, @TZ_BHT" on the third line + 1 byte of "RET NZ" on the fourth line = 4 bytes, and the total execution cycle is 4 cycles on the second line + 2 cycles on the third line + 3 cycles on the fourth line (1 cycle) = 9 cycles (7 cycles). On the other hand, the total command size of the command group shown in FIG. 155(b) is 1 byte of the command "RST DATSEL" on the second line + 2 bytes of the command "RCP NZ, A, @TZ_BHT" on the third line = 3 bytes, and the total execution cycle is 4 cycles on the second line + 5 cycles on the third line (3 cycles) = 9 cycles (7 cycles). Therefore, by replacing the command group in FIG. 155(a) with the command group in FIG. 155(b), the total command size is reduced by 1 byte. This replacement makes it possible to further shorten commands and secure the capacity of the control area for carrying out game control processing.

図156は、TDOVCHKモジュールを説明するための説明図である。図156に示したTDOVCHKモジュールは、図34のステップS540で示したカウントスイッチ通過処理(大入賞口通過処理)において大入賞口入球コマンドをセット(ステップS540-5)した後に実行する大入賞口過剰入賞監視処理、すなわち、大入賞口入賞球数カウンタや大入賞口過剰入賞回数カウンタの更新処理を実行する。 Figure 156 is an explanatory diagram for explaining the TDOVCHK module. The TDOVCHK module shown in Figure 156 executes the large prize opening excess winning monitoring process, which is executed after the large prize opening ball entry command is set (step S540-5) in the count switch passing process (large prize opening passing process) shown in step S540 in Figure 34, i.e., the large prize opening winning ball count counter and the large prize opening excess winning count counter are updated.

図156(a)の1行目の指標「TDOVCHK:」は、当該TDOVCHKモジュールの先頭アドレスを示す。そして、特別電動役物遊技管理フェーズ確認処理として、2行目のコマンド「LDQ A,(LOW R_TDN_PHS)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_TDN_PHS」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(特別電動役物遊技管理フェーズ)をAレジスタに読み出す。 The index "TDOVCHK:" on the first line of FIG. 156(a) indicates the starting address of the TDOVCHK module. Then, as a special electric role play management phase confirmation process, the command "LDQ A, (LOW R_TDN_PHS)" on the second line sets the value of the Q register as the upper byte of the address, sets the value of the lower byte of the address "R_TDN_PHS" as the lower byte of the address, and reads the value stored at that address (special electric role play management phase) into the A register.

図156(a)の3行目のコマンド「JCP NC,A,@TD_PRE_SHT,TDOVCHK_10」によって、Aレジスタの値と固定値「@TD_PRE_SHT」、ここでは、05Hと比較し、その結果、05H以上であれば、アドレス「TDOVCHK_10」に移動する。こうして、Aレジスタの値が小当たり大入賞口開放前状態指定値より後の指定値であれば、以降の処理を省略して6行目の指標「TDOVCHK_10」に移動することができる。4行目のコマンド「CP A,@TD_OPN_BHT」によって、Aレジスタの値と、大当たり大入賞口開放制御状態指定値を示す固定値「@TD_OPN_BHT」、ここでは、2とを比較し、等しければ、ゼロフラグが立って1となる。そして、5行目の「RET Z」によって、ゼロフラグが1であれば、1段上のルーチンに戻る。すなわち、Aレジスタの値が大当たり大入賞口開放制御状態指定値であれば、当該TDOVCHKモジュールを終了する。なお、ゼロフラグが1でなければ、大入賞口入賞球数カウンタ更新処理、大入賞口過剰入賞回数カウンタ更新処理、および、大入賞口過剰入賞エラー時処理を実行して、1段上のルーチンに戻る。 The command "JCP NC, A, @TD_PRE_SHT, TDOVCHK_10" on the third line of FIG. 156(a) compares the value of the A register with the fixed value "@TD_PRE_SHT", here 05H, and if the result is 05H or higher, moves to the address "TDOVCHK_10". In this way, if the value of the A register is a specified value after the small win big prize opening pre-opening state specified value, the subsequent processing can be omitted and it can move to the index "TDOVCHK_10" on the sixth line. The command "CP A, @TD_OPN_BHT" on the fourth line compares the value of the A register with the fixed value "@TD_OPN_BHT", which indicates the big prize opening control state specified value, here 2, and if they are equal, the zero flag is set to 1. Then, if the zero flag is 1, the "RET Z" on the fifth line returns to the routine one step above. That is, if the value of the A register is the jackpot opening control state designated value, the TDOVCHK module is terminated. If the zero flag is not 1, the process executes the process of updating the large prize opening winning ball count counter, the process of updating the large prize opening excess winning count counter, and the process of processing when the large prize opening excess winning error occurs, and then returns to the routine one step above.

ここで、図148の置き換えを行うと、図156(a)のコマンド群を図156(b)のように変更することができる。図156(b)の1行目の指標「TDOVCHK:」は、当該TDOVCHKモジュールの先頭アドレスを示す。そして、特別電動役物遊技管理フェーズ確認処理として、2行目のコマンド「LDQ A,(LOW R_TDN_PHS)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_TDN_PHS」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(特別電動役物遊技管理フェーズ)をAレジスタに読み出す。 Now, by making the substitutions in FIG. 148, the group of commands in FIG. 156(a) can be changed to those in FIG. 156(b). The index "TDOVCHK:" on the first line of FIG. 156(b) indicates the starting address of the TDOVCHK module. Then, as a special electric role play management phase confirmation process, the command "LDQ A, (LOW R_TDN_PHS)" on the second line sets the value of the Q register as the upper byte of the address, sets the value of the lower byte of the address "R_TDN_PHS" as the lower byte of the address, and reads the value stored at that address (special electric role play management phase) into the A register.

図156(b)の3行目のコマンド「JCP NC,A,@TD_PRE_SHT,TDOVCHK_10」によって、Aレジスタの値と固定値「@TD_PRE_SHT」、ここでは、05Hと比較し、その結果、05H以上であれば、アドレス「TDOVCHK_10」に移動する。こうして、Aレジスタの値が小当たり大入賞口開放前状態指定値より後の指定値であれば、以降の処理を省略して5行目の指標「TDOVCHK_10」に移動することができる。4行目のコマンド「RCP Z,A,@TD_OPN_BHT」によって、Aレジスタの値と、大当たり大入賞口開放制御状態指定値を示す固定値「@TD_OPN_BHT」、ここでは、2とを比較し、等しければ、1段上のルーチンに戻る。すなわち、Aレジスタの値が大当たり大入賞口開放制御状態指定値であれば、当該TDOVCHKモジュールを終了する。なお、ゼロフラグが1でなければ、大入賞口入賞球数カウンタ更新処理、大入賞口過剰入賞回数カウンタ更新処理、および、大入賞口過剰入賞エラー時処理を実行して、1段上のルーチンに戻る。 The command "JCP NC, A, @TD_PRE_SHT, TDOVCHK_10" on the third line of Figure 156 (b) compares the value of the A register with a fixed value "@TD_PRE_SHT", here 05H, and if the result is 05H or greater, it moves to address "TDOVCHK_10". In this way, if the value of the A register is a specified value after the small win big prize opening pre-open state specified value, it is possible to skip subsequent processing and move to the index "TDOVCHK_10" on the fifth line. The command "RCP Z, A, @TD_OPN_BHT" on the fourth line compares the value of the A register with a fixed value "@TD_OPN_BHT", here 2, which indicates the big prize opening control state specified value, and if they are equal, it returns to the routine one level above. That is, if the value of the A register is the jackpot opening control state designated value, the TDOVCHK module is terminated. If the zero flag is not 1, the process executes the process of updating the large prize opening winning ball count counter, the process of updating the large prize opening excess winning count counter, and the process of processing when the large prize opening excess winning error occurs, and then returns to the routine one step above.

ここで、図156(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_TDN_PHS)」2バイト+3行目のコマンド「JCP NC,A,@TD_PRE_SHT,TDOVCHK_10」3バイト+4行目のコマンド「CP A,@TD_OPN_BHT」2バイト+5行目の「RET Z」1バイト=8バイトとなり、総実行サイクルは、2行目3サイクル+3行目4サイクル(または3サイクル)+4行目2サイクル+5行目3サイクル(1サイクル)=12サイクル(9サイクル)となる。一方、図156(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_TDN_PHS)」2バイト+3行目のコマンド「JCP NC,A,@TD_PRE_SHT,TDOVCHK_10」3バイト+4行目のコマンド「RCP Z,A,@TD_OPN_BHT」2バイト=7バイトとなり、総実行サイクルは、2行目3サイクル+3行目4サイクル(または3サイクル)+4行目5サイクル(3サイクル)=12サイクル(9サイクル)となる。したがって、図156(a)のコマンド群を図156(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減される。かかる置き換えによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the command group shown in FIG. 156 (a) is 2 bytes of the command "LDQ A, (LOW R_TDN_PHS)" on line 2 + 3 bytes of the command "JCP NC, A, @TD_PRE_SHT, TDOVCHK_10" on line 3 + 2 bytes of the command "CP A, @TD_OPN_BHT" on line 4 + 1 byte of "RET Z" on line 5 = 8 bytes, and the total execution cycles are 3 cycles on line 2 + 4 cycles (or 3 cycles) on line 3 + 2 cycles on line 4 + 3 cycles (1 cycle) on line 5 = 12 cycles (9 cycles). On the other hand, the total command size of the command group shown in FIG. 156(b) is 2 bytes of the command "LDQ A, (LOW R_TDN_PHS)" on the second line + 3 bytes of the command "JCP NC, A, @TD_PRE_SHT, TDOVCHK_10" on the third line + 2 bytes of the command "RCP Z, A, @TD_OPN_BHT" on the fourth line = 7 bytes, and the total execution cycle is 3 cycles on the second line + 4 cycles (or 3 cycles) on the third line + 5 cycles (3 cycles) on the fourth line = 12 cycles (9 cycles). Therefore, by replacing the command group in FIG. 156(a) with the command group in FIG. 156(b), the total command size is reduced by 1 byte. Such a replacement makes it possible to further shorten the commands and secure the capacity of the control area for performing game control processing.

図157は、BER_CHKモジュールを説明するための説明図である。図157に示したBER_CHKモジュールは、図26のステップS400-21で示した状態管理処理(エラー管理処理)のサブルーチンであるベース異常エラー監視処理、すなわち、ベース異常確認カウンタのカウンタ値を監視する処理を実行する。 Figure 157 is an explanatory diagram for explaining the BER_CHK module. The BER_CHK module shown in Figure 157 executes the base abnormality error monitoring process, which is a subroutine of the state management process (error management process) shown in step S400-21 in Figure 26, that is, the process of monitoring the counter value of the base abnormality confirmation counter.

アウトスイッチ確認処理として、図157(a)の1行目の指標「BER_CHK:」は、当該BER_CHKモジュールの先頭アドレスを示す。2行目のコマンド「LDQ HL,LOW R_BAS_CNT」によって、Qレジスタの値をHレジスタに読み出し、アドレス「R_BAS_CNT」の下位1バイトの値をLレジスタに読み出す。3行目のコマンド「LD A,(HL)」によって、HLレジスタで示されるアドレス(すなわちR_BAS_CNT)に格納された値(ベース異常確認カウンタのカウンタ値)をAレジスタに読み出す。 For the out switch confirmation process, the index "BER_CHK:" on the first line of FIG. 157(a) indicates the starting address of the BER_CHK module. The command "LDQ HL, LOW R_BAS_CNT" on the second line reads the value of the Q register into the H register, and reads the value of the lowest byte of the address "R_BAS_CNT" into the L register. The command "LD A, (HL)" on the third line reads the value stored at the address indicated by the HL register (i.e., R_BAS_CNT) (the counter value of the base abnormality confirmation counter) into the A register.

そして、図157(a)の4行目のコマンド「CP A,@BAS_CHK_CNT」によって、Aレジスタの値と、ベース異常検出球数を示す固定値「@BAS_CHK_CNT」ここでは、20とを比較する。すなわち、Aレジスタの値が20未満であれば、キャリーフラグが立って1となる。そして、5行目の「RET C」によって、キャリーフラグが1であれば、1段上のルーチンに戻る。すなわち、ベース異常確認カウンタのカウンタ値が20未満であれば、当該BER_CHKモジュールを終了する。なお、キャリーフラグが1でなければ、セキュリティ設定処理を実行して、1段上のルーチンに戻る。 Then, the command "CP A, @BAS_CHK_CNT" on line 4 of Figure 157(a) compares the value of the A register with the fixed value "@BAS_CHK_CNT" indicating the number of balls detected with a base abnormality, which is 20 in this case. That is, if the value of the A register is less than 20, the carry flag is set to 1. Then, the "RET C" on line 5 returns to the routine one level higher if the carry flag is 1. That is, if the counter value of the base abnormality confirmation counter is less than 20, the BER_CHK module is terminated. Note that if the carry flag is not 1, security setting processing is executed and the routine returns to the routine one level higher.

ここで、図148の置き換えを行うと、図157(a)のコマンド群を図157(b)のように変更することができる。図157(b)の1行目の指標「BER_CHK:」は、当該BER_CHKモジュールの先頭アドレスを示す。2行目のコマンド「LDQ HL,LOW R_BAS_CNT」によって、Qレジスタの値をHレジスタに読み出し、アドレス「R_BAS_CNT」(ベース異常確認カウンタを格納するアドレス)の下位1バイトの値をLレジスタに読み出す。3行目のコマンド「LD A,(HL)」によって、HLレジスタで示されるアドレス(すなわちR_BAS_CNT)に格納された値(ベース異常確認カウンタのカウンタ値)をAレジスタに読み出す。 Now, by making the substitutions in FIG. 148, the command group in FIG. 157(a) can be changed to that in FIG. 157(b). The index "BER_CHK:" on the first line of FIG. 157(b) indicates the starting address of the BER_CHK module. The command "LDQ HL, LOW R_BAS_CNT" on the second line reads the value of the Q register into the H register, and reads the value of the lowest byte of the address "R_BAS_CNT" (the address that stores the base abnormality confirmation counter) into the L register. The command "LD A, (HL)" on the third line reads the value stored at the address indicated by the HL register (i.e., R_BAS_CNT) (the counter value of the base abnormality confirmation counter) into the A register.

そして、図157(b)の4行目のコマンド「RCP C,A,@BAS_CHK_CNT」によって、Aレジスタの値と、ベース異常検出球数を示す固定値「@BAS_CHK_CNT」ここでは、20とを比較し、Aレジスタの値が20未満であれば、1段上のルーチンに戻る。なお、Aレジスタの値が20以上であれば、セキュリティ設定処理を実行して、1段上のルーチンに戻る。 Then, the command "RCP C, A, @BAS_CHK_CNT" on the fourth line of Figure 157 (b) compares the value of the A register with a fixed value "@BAS_CHK_CNT" indicating the number of balls detected as having base abnormalities (here, 20), and if the value of the A register is less than 20, the program returns to the routine one level higher. However, if the value of the A register is 20 or greater, the security setting process is executed and the program returns to the routine one level higher.

ここで、図157(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ HL,LOW R_BAS_CNT」2バイト+3行目のコマンド「LD A,(HL)」1バイト+4行目のコマンド「CP A,@BAS_CHK_CNT」2バイト+5行目の「RET C」1バイト=6バイトとなり、総実行サイクルは、2行目の2サイクル+3行目2サイクル+4行目2サイクル+5行目3サイクル(1サイクル)=9サイクル(7サイクル)となる。一方、図157(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ HL,LOW R_BAS_CNT」2バイト+3行目のコマンド「LD A,(HL)」1バイト+4行目のコマンド「RCP C,A,@BAS_CHK_CNT」2バイト=5バイトとなり、総実行サイクルは、2行目2サイクル+3行目2サイクル+4行目5サイクル(3サイクル)=9サイクル(7サイクル)となる。したがって、図157(a)のコマンド群を図157(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減される。かかる置き換えによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the command group shown in FIG. 157(a) is 2 bytes of the command "LDQ HL, LOW R_BAS_CNT" on line 2 + 1 byte of the command "LD A, (HL)" on line 3 + 2 bytes of the command "CP A, @BAS_CHK_CNT" on line 4 + 1 byte of the command "RET C" on line 5 = 6 bytes, and the total execution cycles are 2 cycles on line 2 + 2 cycles on line 3 + 2 cycles on line 4 + 3 cycles (1 cycle) on line 5 = 9 cycles (7 cycles). On the other hand, the total command size of the command group shown in FIG. 157(b) is 2 bytes of the command "LDQ HL,LOW R_BAS_CNT" on the second line + 1 byte of the command "LD A, (HL)" on the third line + 2 bytes of the command "RCP C,A,@BAS_CHK_CNT" on the fourth line = 5 bytes, and the total execution cycle is 2 cycles on the second line + 2 cycles on the third line + 5 cycles (3 cycles) on the fourth line = 9 cycles (7 cycles). Therefore, by replacing the command group in FIG. 157(a) with the command group in FIG. 157(b), the total command size is reduced by 1 byte. This replacement makes it possible to further shorten the commands and secure the capacity of the control area for performing game control processing.

図158は、TEF_SELモジュールを説明するための説明図である。図158に示したTEF_SELモジュールは、図47のステップS720-9で示した大入賞口閉鎖有効時間設定処理のサブルーチンである大入賞口閉鎖有効時間選択処理、すなわち、大入賞口を閉鎖するまでの有効時間をテーブルから選択する処理を実行する。 Figure 158 is an explanatory diagram for explaining the TEF_SEL module. The TEF_SEL module shown in Figure 158 executes the large prize opening closure effective time selection process, which is a subroutine of the large prize opening closure effective time setting process shown in step S720-9 of Figure 47, that is, the process of selecting the effective time until the large prize opening is closed from a table.

図158(a)の1行目の指標「TEF_SEL:」は、当該TEF_SELモジュールの先頭アドレスを示す。そして、大入賞口閉鎖有効時間データ選択処理として、2行目のコマンド「LDQ A,(LOW R_ZUG_CHK_FIX)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_ZUG_CHK_FIX」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(特別図柄判定フラグ)をAレジスタに読み出す。 The indicator "TEF_SEL:" on the first line of FIG. 158(a) indicates the starting address of the TEF_SEL module. Then, as a process for selecting the effective time data for closing the large prize opening, the command "LDQ A, (LOW R_ZUG_CHK_FIX)" on the second line sets the value of the Q register as the upper byte of the address, sets the value of the lower byte of the address "R_ZUG_CHK_FIX" as the lower byte of the address, and reads the value stored at that address (special symbol determination flag) into the A register.

図158(a)の3行目のコマンド「CP A,@ZUG_SML1」によって、Aレジスタの値と、小当たり図柄1指定データを示す固定値「@ZUG_SML1」、ここでは、07Hとを比較し、07H未満であれば、キャリーフラグが立って1となる。そして、4行目の「RET NC」によって、キャリーフラグが1でなければ、1段上のルーチンに戻る。すなわち、Aレジスタの値が小当たり図柄1指定データ以上であれば、当該TEF_SELモジュールを終了する。なお、キャリーフラグが1であれば、ワードデータ選択処理を実行して、1段上のルーチンに戻る。 The command "CP A, @ZUG_SML1" on the third line of Figure 158 (a) compares the value of the A register with the fixed value "@ZUG_SML1" indicating the small win symbol 1 designation data, 07H in this case, and if it is less than 07H, the carry flag is set to 1. Then, the "RET NC" on the fourth line returns to the routine one level higher if the carry flag is not 1. In other words, if the value of the A register is equal to or greater than the small win symbol 1 designation data, the TEF_SEL module is terminated. Note that if the carry flag is 1, the word data selection process is executed and the routine returns to the routine one level higher.

ここで、図148の置き換えを行うと、図158(a)のコマンド群を図158(b)のように変更することができる。図158(b)の1行目の指標「TEF_SEL:」は、当該TEF_SELモジュールの先頭アドレスを示す。そして、大入賞口閉鎖有効時間データ選択処理として、2行目のコマンド「LDQ A,(LOW R_ZUG_CHK_FIX)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_ZUG_CHK_FIX」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(特別図柄判定フラグ)をAレジスタに読み出す。 Now, by making the replacement in FIG. 148, the group of commands in FIG. 158(a) can be changed to that in FIG. 158(b). The indicator "TEF_SEL:" on the first line of FIG. 158(b) indicates the starting address of the TEF_SEL module. Then, as a process for selecting the effective time data for closing the large prize opening, the command "LDQ A, (LOW R_ZUG_CHK_FIX)" on the second line sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_ZUG_CHK_FIX" to the lower byte of the address, and reads the value stored at that address (special symbol determination flag) into the A register.

図158(b)の3行目のコマンド「RCP NC,A,@ZUG_SML1」によって、Aレジスタの値と、小当たり図柄1指定データを示す固定値「@ZUG_SML1」、ここでは、07Hとを比較し、07H以上であれば、1段上のルーチンに戻る。すなわち、Aレジスタの値が小当たり図柄1指定データ以上であれば、当該TEF_SELモジュールを終了する。なお、Aレジスタの値が小当たり図柄1指定データ未満であれば、ワードデータ選択処理を実行して、1段上のルーチンに戻る。 The command "RCP NC, A, @ZUG_SML1" on the third line of Figure 158 (b) compares the value of the A register with the fixed value "@ZUG_SML1" indicating the small win symbol 1 designation data, 07H in this case, and if it is 07H or greater, it returns to the routine one level higher. In other words, if the value of the A register is equal to or greater than the small win symbol 1 designation data, the TEF_SEL module is terminated. Note that if the value of the A register is less than the small win symbol 1 designation data, the word data selection process is executed and the routine returns to the routine one level higher.

ここで、図158(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_ZUG_CHK_FIX)」2バイト+3行目のコマンド「CP A,@ZUG_SML1」2バイト+4行目の「RET NC」1バイト=5バイトとなり、総実行サイクルは、2行目3サイクル+3行目2サイクル+4行目3サイクル(1サイクル)=8サイクル(6サイクル)となる。一方、図158(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_ZUG_CHK_FIX)」2バイト+3行目のコマンド「RCP NC,A,@ZUG_SML1」2バイト=4バイトとなり、総実行サイクルは、2行目3サイクル+3行目5サイクル(3サイクル)=8サイクル(6サイクル)となる。したがって、図158(a)のコマンド群を図158(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減される。かかる置き換えによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the command group shown in FIG. 158(a) is 2 bytes of the command "LDQ A, (LOW R_ZUG_CHK_FIX)" on the second line + 2 bytes of the command "CP A, @ZUG_SML1" on the third line + 1 byte of "RET NC" on the fourth line = 5 bytes, and the total execution cycle is 3 cycles on the second line + 2 cycles on the third line + 3 cycles (1 cycle) on the fourth line = 8 cycles (6 cycles). On the other hand, the total command size of the command group shown in FIG. 158(b) is 2 bytes of the command "LDQ A, (LOW R_ZUG_CHK_FIX)" on the second line + 2 bytes of the command "RCP NC, A, @ZUG_SML1" on the third line = 4 bytes, and the total execution cycle is 3 cycles on the second line + 5 cycles (3 cycles) on the third line = 8 cycles (6 cycles). Therefore, by replacing the command group in FIG. 158(a) with the command group in FIG. 158(b), the total command size is reduced by 1 byte. This replacement makes it possible to further shorten the commands and ensure the capacity of the control area for performing game control processing.

なお、かかる図148で示した置き換えは、パチンコ機のみならず、スロットマシンにおいても、複数のモジュールからサブルーチンとして呼び出される。例えば、図92のステップS2500-35の滑りコマ数取得処理における逆押しデータ設定処理を実行するSET_RIGモジュール、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、準備中処理(AT状態=「5」)を実行するPRE_LOTモジュール、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、REG中処理(AT状態=「6」)を実行するREG_LOTモジュール、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、BIG中処理(AT状態=「7」)を実行するBIT_LOTモジュールにおけるBIGストック数抽せん処理を実行するBIG_SLTモジュール、図91のステップS2400-11で示した実行フラグ設定処理において指示情報設定処理を実行するNAV_SETモジュール等から呼び出される。 The replacement shown in FIG. 148 is called as a subroutine from multiple modules not only in pachinko machines but also in slot machines. For example, the SET_RIG module which executes the reverse push data setting process in the sliding frame number acquisition process in step S2500-35 in FIG. 92, the EXE_SET module which executes the execution flag setting process shown in step S2400-11 in FIG. 91, which selectively transitions depending on the game state and presentation state and executes the preparation process (AT state = "5"), the EXE_SET module which executes the execution flag setting process shown in step S2400-11 in FIG. 91, which selectively transitions depending on the game state and presentation state, It is called from the REG_LOT module which executes REG processing (AT state = "6"), the EXE_SET module which executes the execution flag setting process shown in step S2400-11 in FIG. 91, the BIG_SLT module which executes the BIG stock number lottery process in the BIT_LOT module which executes BIG processing (AT state = "7"), the NAV_SET module which executes the instruction information setting process in the execution flag setting process shown in step S2400-11 in FIG. 91, etc.

図159は、SET_RIGモジュールを説明するための説明図である。図159に示したSET_RIGモジュールは、逆押しデータ設定処理、すなわち、停止制御に必要なデータを設定する処理を実行する。 Figure 159 is an explanatory diagram for explaining the SET_RIG module. The SET_RIG module shown in Figure 159 executes the reverse push data setting process, i.e., the process of setting the data required for stop control.

図159(a)の1行目の指標「SET_RIG:」は、当該SET_RIGモジュールの先頭アドレスを示す。2行目のコマンド「LDQ A,(LOW _HIT_NUM)」によって、Qレジスタの値をアドレスの上位1バイトとし、停止制御番号を格納するアドレス「_HIT_NUM」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(停止制御番号)をAレジスタに読み出す。 The index "SET_RIG:" on the first line of Figure 159(a) indicates the starting address of the SET_RIG module. The command "LDQ A, (LOW _HIT_NUM)" on the second line sets the value of the Q register to the most significant byte of the address, sets the value of the least significant byte of the address "_HIT_NUM" that stores the stop control number to the least significant byte of the address, and reads the value stored at that address (stop control number) into the A register.

そして、第2停止操作時使用ビットデータ更新処理として、図159(a)の3行目のコマンド「SUB A,10」によって、Aレジスタの値から固定値「10」を減算する。そして、4行目のコマンド「CP A,57-10+1」によって、減算されたAレジスタの値と48(57-10+1)とを比較する。ここでは、停止制御番号が10~57の範囲に含まれることを確認している。すなわち、Aレジスタの値が10未満であれば、コマンド「SUB A,10」によってAレジスタの値は負の値になり、1バイト値としてみると48より大きくなる。したがって、減算されたAレジスタの値が10未満であれば、コマンド「CP A,57-10+1」によってキャリーフラグが立って1となる。そして、5行目の「RET NC」によって、キャリーフラグが1でなければ、1段上のルーチンに戻る。なお、キャリーフラグが1であれば(停止制御番号が10~57の範囲に含まれれば)、次の処理を実行する。 Then, as the second stop operation use bit data update process, the command "SUB A, 10" on the third line of FIG. 159(a) subtracts a fixed value "10" from the value of the A register. Then, the command "CP A, 57-10+1" on the fourth line compares the subtracted value of the A register with 48 (57-10+1). Here, it is confirmed that the stop control number is within the range of 10 to 57. In other words, if the value of the A register is less than 10, the command "SUB A, 10" makes the value of the A register a negative value, which is greater than 48 when viewed as a byte value. Therefore, if the subtracted value of the A register is less than 10, the command "CP A, 57-10+1" sets the carry flag to 1. Then, if the carry flag is not 1, the "RET NC" on the fifth line returns to the routine one step above. Note that if the carry flag is 1 (if the stop control number is within the range of 10 to 57), the next process is executed.

続いて、図159(a)の6行目のコマンド「LDQ A,(LOW _HIT_NUM)」によって、Qレジスタの値をアドレスの上位1バイトとし、停止制御番号を格納するアドレス「_HIT_NUM」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(停止制御番号)をAレジスタに読み出す。7行目のコマンド「CP A,34」によって、Aレジスタの値と固定値「34」を比較している。ここでは、停止制御番号が34未満であることを確認している。Aレジスタの値が34未満であれば、コマンド「CP A,34」によってキャリーフラグが立って1となる。そして、8行目の「RET NC」によって、キャリーフラグが1でなければ、1段上のルーチンに戻る。なお、キャリーフラグが1であれば(停止制御番号が34未満であれば)、残りの処理を実行して1段上のルーチンに戻る。 Next, the command "LDQ A, (LOW _HIT_NUM)" on line 6 of FIG. 159(a) sets the value of the Q register to the upper byte of the address, the value of the lower byte of the address "_HIT_NUM" that stores the stop control number to the lower byte of the address, and reads the value stored at that address (stop control number) into the A register. The command "CP A, 34" on line 7 compares the value of the A register with a fixed value of "34." Here, it is confirmed that the stop control number is less than 34. If the value of the A register is less than 34, the command "CP A, 34" sets the carry flag to 1. Then, if the carry flag is not 1, the "RET NC" on line 8 returns to the routine one level above. Note that if the carry flag is 1 (if the stop control number is less than 34), the remaining processing is executed and the routine returns to the routine one level above.

ここで、図148の置き換えを行うと、図159(a)のコマンド群を図159(b)のように変更することができる。図159(b)の1行目の指標「SET_RIG:」は、当該SET_RIGモジュールの先頭アドレスを示す。2行目のコマンド「LDQ A,(LOW _HIT_NUM)」によって、Qレジスタの値をアドレスの上位1バイトとし、停止制御番号を格納するアドレス「_HIT_NUM」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(停止制御番号)をAレジスタに読み出す。 Now, by making the substitutions in FIG. 148, the group of commands in FIG. 159(a) can be changed to those in FIG. 159(b). The index "SET_RIG:" on the first line of FIG. 159(b) indicates the starting address of the SET_RIG module. The command "LDQ A, (LOW _HIT_NUM)" on the second line sets the value of the Q register to the most significant byte of the address, sets the value of the least significant byte of the address "_HIT_NUM" that stores the stop control number to the least significant byte of the address, and reads the value stored at that address (stop control number) into the A register.

そして、第2停止操作時使用ビットデータ更新処理として、図159(b)の3行目のコマンド「SUB A,10」によって、Aレジスタの値から固定値「10」を減算する。4行目のコマンド「RCP NC,A,57-10+1」によって、減算されたAレジスタの値と48(57-10+1)とを比較し、キャリーフラグが1でなければ、1段上のルーチンに戻る。ここでは、停止制御番号が10~57の範囲に含まれることを確認し、その範囲に入っていなければ、それ以降の処理を行わず1段上のルーチンに戻っている。なお、キャリーフラグが1であれば(停止制御番号が10~57の範囲に含まれれば)、次の処理を実行する。 Then, as a process for updating the bit data used during the second stop operation, the command "SUB A, 10" on the third line of Figure 159 (b) subtracts a fixed value of "10" from the value in the A register. The command "RCP NC, A, 57-10+1" on the fourth line compares the subtracted value in the A register with 48 (57-10+1), and if the carry flag is not 1, returns to the routine one level higher. Here, it is confirmed that the stop control number is within the range of 10 to 57, and if it is not within that range, the process returns to the routine one level higher without performing any further processing. Note that if the carry flag is 1 (if the stop control number is within the range of 10 to 57), the next process is executed.

続いて、図159(b)の5行目のコマンド「LDQ A,(LOW _HIT_NUM)」によって、Qレジスタの値をアドレスの上位1バイトとし、停止制御番号を格納するアドレス「_HIT_NUM」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(停止制御番号)をAレジスタに読み出す。6行目のコマンド「RCP NC,A,34」によって、Aレジスタの値と固定値「34」を比較し、キャリーフラグが1でなければ、1段上のルーチンに戻る。ここでは、停止制御番号が34未満であることを確認し、34以上であれば、それ以降の処理を行わず1段上のルーチンに戻っている。なお、キャリーフラグが1であれば(停止制御番号が34未満であれば)、残りの処理を実行して1段上のルーチンに戻る。 Next, the command "LDQ A, (LOW _HIT_NUM)" on line 5 of Figure 159 (b) sets the value of the Q register to the upper byte of the address, the value of the lower byte of the address "_HIT_NUM" that stores the stop control number to the lower byte of the address, and reads the value stored at that address (stop control number) into the A register. The command "RCP NC, A, 34" on line 6 compares the value of the A register with a fixed value of "34", and if the carry flag is not 1, returns to the routine one level higher. Here, it is confirmed that the stop control number is less than 34, and if it is 34 or greater, it returns to the routine one level higher without performing any further processing. Note that if the carry flag is 1 (if the stop control number is less than 34), the remaining processing is performed and then the routine one level higher is returned to.

ここで、図159(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW _HIT_NUM)」2バイト+3行目のコマンド「SUB A,10」2バイト+4行目のコマンド「CP A,57-10+1」2バイト+5行目の「RET NC」1バイト+6行目のコマンド「LDQ A,(LOW _HIT_NUM)」2バイト+7行目のコマンド「CP A,34」2バイト+8行目の「RET NC」1バイト=12バイトとなり、総実行サイクルは、2行目3サイクル+3行目2サイクル+4行目2サイクル+5行目3サイクル(1サイクル)+6行目3サイクル+7行目2サイクル+8行目3サイクル(1サイクル)=18サイクル(14サイクル)となる。一方、図159(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW _HIT_NUM)」2バイト+3行目のコマンド「SUB A,10」2バイト+4行目のコマンド「RCP NC,A,57-10+1」2バイト+5行目のコマンド「LDQ A,(LOW _HIT_NUM)」2バイト+6行目のコマンド「RCP NC,A,34」2バイト=10バイトとなり、総実行サイクルは、2行目3サイクル+3行目2サイクル+4行目5サイクル(3サイクル)+5行目3サイクル+6行目5サイクル(3サイクル)=18サイクル(14サイクル)となる。したがって、図159(a)のコマンド群を図159(b)のコマンド群に置き換えることで、総コマンドサイズが2バイト削減される。かかる置き換えによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the command group shown in FIG. 159(a) is 2 bytes of the command "LDQ A, (LOW _HIT_NUM)" on line 2 + 2 bytes of the command "SUB A, 10" on line 3 + 2 bytes of the command "CP A, 57-10+1" on line 4 + 1 byte of "RET NC" on line 5 + 2 bytes of the command "LDQ A, (LOW _HIT_NUM)" on line 6 + 2 bytes of the command "CP A, 34" on line 7 + 1 byte of "RET NC" on line 8 = 12 bytes, and the total execution cycles are 3 cycles on line 2 + 2 cycles on line 3 + 2 cycles on line 4 + 3 cycles (1 cycle) on line 5 + 3 cycles (1 cycle) on line 6 + 2 cycles on line 7 + 3 cycles (1 cycle) on line 8 = 18 cycles (14 cycles). On the other hand, the total command size of the command group shown in Fig. 159(b) is 2 bytes of the command "LDQ A, (LOW_HIT_NUM)" on the second line + 2 bytes of the command "SUB A, 10" on the third line + 2 bytes of the command "RCP NC, A, 57-10+1" on the fourth line + 2 bytes of the command "LDQ A, (LOW_HIT_NUM)" on the fifth line + 2 bytes of the command "RCP NC, A, 34" on the sixth line = 10 bytes, and the total execution cycles are 3 cycles on the second line + 2 cycles on the third line + 5 cycles (3 cycles) on the fourth line + 3 cycles on the fifth line + 5 cycles (3 cycles) on the sixth line = 18 cycles (14 cycles). Therefore, by replacing the command group in Fig. 159(a) with the command group in Fig. 159(b), the total command size is reduced by 2 bytes. This replacement makes it possible to further shorten commands and secure the capacity of the control area for carrying out game control processing.

図160は、PRE_LOTモジュールを説明するための説明図である。図160に示したPRE_LOTモジュールは、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、準備中処理、すなわち、AT状態が所定の値(例えば5)の場合の抽せん処理を実行する。 Figure 160 is an explanatory diagram for explaining the PRE_LOT module. The PRE_LOT module shown in Figure 160 selectively transitions depending on the game state and presentation state in the EXE_SET module that executes the execution flag setting process shown in step S2400-11 in Figure 91, and executes preparation processing, i.e., lottery processing when the AT state is a predetermined value (for example, 5).

図160(a)の1行目の指標「PRE_LOT:」は、当該PRE_LOTモジュールの先頭アドレスを示す。2行目のコマンド「LDQ A,(LOW _TRG_KND)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_TRG_KND」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(トリガー役種別)をAレジスタに読み出す。 The index "PRE_LOT:" on the first line of Figure 160 (a) indicates the starting address of the PRE_LOT module. The command "LDQ A, (LOW _TRG_KND)" on the second line sets the value of the Q register to the most significant byte of the address, sets the value of the least significant byte of the address "_TRG_KND" to the least significant byte of the address, and reads the value stored at that address (trigger role type) into the A register.

図160(a)の3行目のコマンド「CP A,@LOT_OFS_1FK」によって、Aレジスタの値と、トリガー役種別として「フェイク1枚」を示す固定値「@LOT_OFS_1FK」、ここでは、3とを比較し、3未満であれば、キャリーフラグが立って1となる。そして、4行目の「RET C」によって、キャリーフラグが1であれば、1段上のルーチンに戻る。すなわち、Aレジスタの値が「フェイク1枚」を示す固定値未満であれば、当該PRE_LOTモジュールを終了する。なお、キャリーフラグが0であれば、REG開始時設定処理、BIG開始時BIGストック抽せん処理、BIG開始時設定処理を実行して、1段上のルーチンに戻る。 The command "CP A, @LOT_OFS_1FK" on the third line of Fig. 160(a) compares the value of the A register with the fixed value "@LOT_OFS_1FK" (3 in this case) which indicates "1 fake" as the trigger role type, and if it is less than 3, the carry flag is set to 1. Then, "RET C" on the fourth line returns to the routine one level higher if the carry flag is 1. In other words, if the value of the A register is less than the fixed value indicating "1 fake", the PRE_LOT module is terminated. Note that if the carry flag is 0, the REG start time setting process, BIG start time BIG stock lottery process, and BIG start time setting process are executed, and then the routine one level higher is returned to.

ここで、図148の置き換えを行うと、図160(a)のコマンド群を図160(b)のように変更することができる。図160(b)の1行目の指標「PRE_LOT:」は、当該PRE_LOTモジュールの先頭アドレスを示す。2行目のコマンド「LDQ A,(LOW _TRG_KND)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_TRG_KND」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(トリガー役種別)をAレジスタに読み出す。 Now, by making the substitutions in FIG. 148, the group of commands in FIG. 160(a) can be changed to those in FIG. 160(b). The index "PRE_LOT:" on the first line of FIG. 160(b) indicates the starting address of the PRE_LOT module. The command "LDQ A, (LOW _TRG_KND)" on the second line makes the value of the Q register the most significant byte of the address, the value of the least significant byte of the address "_TRG_KND" the least significant byte of the address, and reads the value stored at that address (trigger role type) into the A register.

図160(b)の3行目のコマンド「RCP C,A,@LOT_OFS_1FK」によって、Aレジスタの値と、トリガー役種別として「フェイク1枚」を示す固定値「@LOT_OFS_1FK」、ここでは、3とを比較し、3未満であれば、1段上のルーチンに戻る。すなわち、Aレジスタの値が「フェイク1枚」を示す固定値未満であれば、当該PRE_LOTモジュールを終了する。 The command "RCP C, A, @LOT_OFS_1FK" on the third line of Fig. 160(b) compares the value of the A register with the fixed value "@LOT_OFS_1FK" (3 in this case) which indicates "1 fake" as the trigger role type, and if it is less than 3, it returns to the routine one level above. In other words, if the value of the A register is less than the fixed value which indicates "1 fake", the PRE_LOT module is terminated.

ここで、図160(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW _TRG_KND)」2バイト+3行目のコマンド「CP A,@LOT_OFS_1FK」2バイト+3行目の「RET C」1バイト=5バイトとなり、総実行サイクルは、2行目3サイクル+3行目2サイクル+4行目3サイクル(1サイクル)=8サイクル(6サイクル)となる。一方、図160(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW _TRG_KND)」2バイト+3行目のコマンド「RCP C,A,@LOT_OFS_1FK」2バイト=4バイトとなり、総実行サイクルは、2行目3サイクル+3行目5サイクル(3サイクル)=8サイクル(6サイクル)となる。したがって、図160(a)のコマンド群を図160(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減される。かかる置き換えによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the command group shown in FIG. 160(a) is 2 bytes of the command "LDQ A, (LOW _TRG_KND)" on the second line + 2 bytes of the command "CP A, @LOT_OFS_1FK" on the third line + 1 byte of "RET C" on the third line = 5 bytes, and the total execution cycle is 3 cycles on the second line + 2 cycles on the third line + 3 cycles (1 cycle) on the fourth line = 8 cycles (6 cycles). On the other hand, the total command size of the command group shown in FIG. 160(b) is 2 bytes of the command "LDQ A, (LOW _TRG_KND)" on the second line + 2 bytes of the command "RCP C, A, @LOT_OFS_1FK" on the third line = 4 bytes, and the total execution cycle is 3 cycles on the second line + 5 cycles (3 cycles) on the third line = 8 cycles (6 cycles). Therefore, by replacing the command group in FIG. 160(a) with the command group in FIG. 160(b), the total command size is reduced by 1 byte. This replacement makes it possible to further shorten the commands and ensure the capacity of the control area for performing game control processing.

図161は、REG_LOTモジュールを説明するための説明図である。図161に示したREG_LOTモジュールは、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、REG中処理、すなわち、AT状態が所定の値(例えば6)の場合の抽せん処理を実行する。 Figure 161 is an explanatory diagram for explaining the REG_LOT module. The REG_LOT module shown in Figure 161 selectively transitions depending on the game state and presentation state in the EXE_SET module that executes the execution flag setting process shown in step S2400-11 in Figure 91, and executes processing during REG, that is, lottery processing when the AT state is a predetermined value (for example, 6).

図161(a)の1行目の指標「REG_LOT:」は、当該REG_LOTモジュールの先頭アドレスを示す。2行目のコマンド「LDQ A,(LOW _TRG_KND)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_TRG_KND」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(トリガー役種別)をAレジスタに読み出す。 The index "REG_LOT:" on the first line of Figure 161 (a) indicates the starting address of the REG_LOT module. The command "LDQ A, (LOW _TRG_KND)" on the second line sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "_TRG_KND" to the lower byte of the address, and reads the value stored at that address (trigger role type) into the A register.

図161(a)の3行目のコマンド「CP A,@LOT_OFS_PDJ」によって、Aレジスタの値と、トリガー役種別として「打順ベル」を示す固定値「@LOT_OFS_PDJ」、ここでは、5とを比較し、5であれば、ゼロフラグが立って1となる。そして、4行目の「RET NZ」によって、ゼロフラグが1でなければ、1段上のルーチンに戻る。すなわち、Aレジスタの値が「打順ベル」を示す固定値でなければ、当該REG_LOTモジュールを終了する。なお、ゼロフラグが0であれば、REG残りナビ回数減算処理、REG終了時設定処理を実行して、1段上のルーチンに戻る。 The command "CP A, @LOT_OFS_PDJ" on the third line of Fig. 161(a) compares the value of the A register with the fixed value "@LOT_OFS_PDJ" (5 in this case) which indicates the trigger role type "batting order bell", and if it is 5, the zero flag is raised and becomes 1. Then, the "RET NZ" on the fourth line returns to the routine one level higher if the zero flag is not 1. In other words, if the value of the A register is not the fixed value which indicates "batting order bell", the REG_LOT module is terminated. Note that if the zero flag is 0, the REG remaining number of navigations is subtracted and the REG end time setting process is executed, and then the routine one level higher is returned to.

ここで、図148の置き換えを行うと、図161(a)のコマンド群を図161(b)のように変更することができる。図161(b)の1行目の指標「REG_LOT:」は、当該REG_LOTモジュールの先頭アドレスを示す。2行目のコマンド「LDQ A,(LOW _TRG_KND)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_TRG_KND」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(トリガー役種別)をAレジスタに読み出す。 Now, by making the substitutions in FIG. 148, the group of commands in FIG. 161(a) can be changed to those in FIG. 161(b). The index "REG_LOT:" on the first line of FIG. 161(b) indicates the starting address of the REG_LOT module. The command "LDQ A, (LOW _TRG_KND)" on the second line makes the value of the Q register the most significant byte of the address, the value of the least significant byte of the address "_TRG_KND" the least significant byte of the address, and reads the value stored at that address (trigger role type) into the A register.

図161(b)の3行目のコマンド「RCP NZ,A,@LOT_OFS_PDJ」によって、Aレジスタの値と、トリガー役種別として「打順ベル」を示す固定値「@LOT_OFS_PDJ」、ここでは、5とを比較し、5でなければ、1段上のルーチンに戻る。すなわち、Aレジスタの値が「打順ベル」を示す固定値でなければ、当該REG_LOTモジュールを終了する。 The command "RCP NZ, A, @LOT_OFS_PDJ" on the third line of FIG. 161(b) compares the value of the A register with the fixed value "@LOT_OFS_PDJ" (5 in this case) that indicates the "batting order bell" as the trigger role type, and if it is not 5, returns to the routine one level above. In other words, if the value of the A register is not the fixed value that indicates the "batting order bell", the REG_LOT module is terminated.

ここで、図161(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW _TRG_KND)」2バイト+3行目のコマンド「CP A,@LOT_OFS_PDJ」2バイト+4行目の「RET NZ」1バイト=5バイトとなり、総実行サイクルは、2行目3サイクル+3行目2サイクル+4行目3サイクル(1サイクル)=8サイクル(6サイクル)となる。一方、図161(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW _TRG_KND)」2バイト+3行目のコマンド「RCP NZ,A,@LOT_OFS_PDJ」2バイト=4バイトとなり、総実行サイクルは、2行目3サイクル+3行目5サイクル(3サイクル)=8サイクル(6サイクル)となる。したがって、図161(a)のコマンド群を図161(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減される。かかる置き換えによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the command group shown in FIG. 161(a) is 2 bytes of the command "LDQ A, (LOW _TRG_KND)" on the second line + 2 bytes of the command "CP A, @LOT_OFS_PDJ" on the third line + 1 byte of "RET NZ" on the fourth line = 5 bytes, and the total execution cycle is 3 cycles on the second line + 2 cycles on the third line + 3 cycles (1 cycle) on the fourth line = 8 cycles (6 cycles). On the other hand, the total command size of the command group shown in FIG. 161(b) is 2 bytes of the command "LDQ A, (LOW _TRG_KND)" on the second line + 2 bytes of the command "RCP NZ, A, @LOT_OFS_PDJ" on the third line = 4 bytes, and the total execution cycle is 3 cycles on the second line + 5 cycles (3 cycles) on the third line = 8 cycles (6 cycles). Therefore, by replacing the command group in FIG. 161(a) with the command group in FIG. 161(b), the total command size is reduced by 1 byte. This replacement makes it possible to further shorten the commands and ensure the capacity of the control area for performing game control processing.

図162は、BIG_SLTモジュールを説明するための説明図である。図162に示したBIG_SLTモジュールは、BIGストック数抽せん処理を実行する。 Figure 162 is an explanatory diagram for explaining the BIG_SLT module. The BIG_SLT module shown in Figure 162 executes the BIG stock number lottery process.

図162(a)の1行目の指標「BIG_SLT:」は、当該BIG_SLTモジュールの先頭アドレスを示す。2行目のコマンド「LDQ A,(LOW _TRG_KND)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_TRG_KND」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(トリガー役種別)をAレジスタに読み出す。 The index "BIG_SLT:" on the first line of FIG. 162(a) indicates the starting address of the BIG_SLT module. The command "LDQ A, (LOW _TRG_KND)" on the second line sets the value of the Q register to the most significant byte of the address, sets the value of the least significant byte of the address "_TRG_KND" to the least significant byte of the address, and reads the value stored at that address (trigger role type) into the A register.

図162(a)の3行目のコマンド「CP A,@LOT_OFS_LCY」によって、Aレジスタの値と、トリガー役種別として「弱チェリー」を示す固定値「@LOT_OFS_LCY」、ここでは、6とを比較し、6未満であれば、キャリーフラグが立って1となる。そして、4行目の「RET C」によって、キャリーフラグが1であれば、1段上のルーチンに戻る。すなわち、Aレジスタの値が「弱チェリー」を示す固定値未満であれば、当該BIG_SLTモジュールを終了する。なお、キャリーフラグが0であれば、BIG中ストック抽せん処理を実行して、1段上のルーチンに戻る。 The command "CP A, @LOT_OFS_LCY" on the third line of Fig. 162(a) compares the value of the A register with the fixed value "@LOT_OFS_LCY" (6 in this case) which indicates the trigger role type of "weak cherry", and if it is less than 6, the carry flag is set to 1. Then, the "RET C" on the fourth line returns to the routine one level higher if the carry flag is 1. In other words, if the value of the A register is less than the fixed value indicating "weak cherry", the BIG_SLT module is terminated. Note that if the carry flag is 0, the BIG stock drawing process is executed and the routine returns to the routine one level higher.

ここで、図148の置き換えを行うと、図162(a)のコマンド群を図162(b)のように変更することができる。図162(b)の1行目の指標「BIG_SLT:」は、当該BIG_SLTモジュールの先頭アドレスを示す。2行目のコマンド「LDQ A,(LOW _TRG_KND)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_TRG_KND」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(トリガー役種別)をAレジスタに読み出す。 Now, by making the substitutions in FIG. 148, the group of commands in FIG. 162(a) can be changed to those in FIG. 162(b). The index "BIG_SLT:" on the first line of FIG. 162(b) indicates the starting address of the BIG_SLT module. The command "LDQ A, (LOW _TRG_KND)" on the second line sets the value of the Q register to the most significant byte of the address, sets the value of the least significant byte of the address "_TRG_KND" to the least significant byte of the address, and reads the value stored at that address (trigger role type) into the A register.

図162(b)の3行目のコマンド「RCP C,A,@LOT_OFS_LCY」によって、Aレジスタの値と、トリガー役種別として「弱チェリー」を示す固定値「@LOT_OFS_LCY」、ここでは、6とを比較し、6未満であれば、1段上のルーチンに戻る。すなわち、Aレジスタの値が「弱チェリー」を示す固定値未満であれば、当該BIG_SLTモジュールを終了する。 The command "RCP C, A, @LOT_OFS_LCY" on the third line of Fig. 162(b) compares the value of the A register with the fixed value "@LOT_OFS_LCY" (6 in this case) which indicates the trigger role type "Weak Cherry", and if it is less than 6, it returns to the routine one level above. In other words, if the value of the A register is less than the fixed value which indicates "Weak Cherry", the BIG_SLT module is terminated.

ここで、図162(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW _TRG_KND)」2バイト+3行目のコマンド「CP A,@LOT_OFS_LCY」2バイト+4行目の「RET C」1バイト=5バイトとなり、総実行サイクルは、2行目3サイクル+3行目2サイクル+4行目3サイクル(1サイクル)=8サイクル(6サイクル)となる。一方、図162(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW _TRG_KND)」2バイト+3行目のコマンド「RCP C,A,@LOT_OFS_LCY」2バイト=4バイトとなり、総実行サイクルは、2行目3サイクル+3行目5サイクル(3サイクル)=8サイクル(6サイクル)となる。したがって、図162(a)のコマンド群を図162(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減される。かかる置き換えによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the command group shown in FIG. 162(a) is 2 bytes of the command "LDQ A, (LOW _TRG_KND)" on the second line + 2 bytes of the command "CP A, @LOT_OFS_LCY" on the third line + 1 byte of "RET C" on the fourth line = 5 bytes, and the total execution cycle is 3 cycles on the second line + 2 cycles on the third line + 3 cycles (1 cycle) on the fourth line = 8 cycles (6 cycles). On the other hand, the total command size of the command group shown in FIG. 162(b) is 2 bytes of the command "LDQ A, (LOW _TRG_KND)" on the second line + 2 bytes of the command "RCP C, A, @LOT_OFS_LCY" on the third line = 4 bytes, and the total execution cycle is 3 cycles on the second line + 5 cycles (3 cycles) on the third line = 8 cycles (6 cycles). Therefore, by replacing the command group in FIG. 162(a) with the command group in FIG. 162(b), the total command size is reduced by 1 byte. This replacement makes it possible to further shorten the commands and ensure the capacity of the control area for performing game control processing.

図163は、NAV_SETモジュールを説明するための説明図である。図163に示したNAV_SETモジュールは、指示情報設定処理、すなわち、指示情報種別の設定処理を実行する。 Figure 163 is an explanatory diagram for explaining the NAV_SET module. The NAV_SET module shown in Figure 163 executes the instruction information setting process, i.e., the process of setting the instruction information type.

図163(a)の1行目の指標「NAV_SET:」は、当該NAV_SETモジュールの先頭アドレスを示す。2行目のコマンド「LDQ A,(LOW _YRI_LMP)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_YRI_LMP」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(有効ランプフラグ)をAレジスタに読み出す。 The index "NAV_SET:" on the first line of Figure 163 (a) indicates the starting address of the NAV_SET module. The command "LDQ A, (LOW _YRI_LMP)" on the second line sets the value of the Q register to the most significant byte of the address, sets the value of the least significant byte of the address "_YRI_LMP" to the least significant byte of the address, and reads the value stored at that address (valid lamp flag) into the A register.

図163(a)の3行目のコマンド「CP A,@AT_MOD_PRE」によって、Aレジスタの値と、AT状態定義が「準備中」を示す固定値「@AT_MOD_PRE」、ここでは、5とを比較し、5未満であれば、キャリーフラグが立って1となる。そして、4行目の「RET C」によって、キャリーフラグが1であれば、1段上のルーチンに戻る。すなわち、Aレジスタの値が「準備中」を示す固定値未満であれば、当該NAV_SETモジュールを終了する。なお、キャリーフラグが0であれば、残りの処理を実行して、1段上のルーチンに戻る。 The command "CP A, @AT_MOD_PRE" on the third line of Figure 163 (a) compares the value of the A register with the fixed value "@AT_MOD_PRE" (5 in this case) which indicates that the AT state definition is "in preparation", and if it is less than 5, the carry flag is raised and becomes 1. Then, the "RET C" on the fourth line returns to the routine one level higher if the carry flag is 1. In other words, if the value of the A register is less than the fixed value indicating "in preparation", the NAV_SET module is terminated. Note that if the carry flag is 0, the remaining processing is executed and the routine returns to the routine one level higher.

ここで、図148の置き換えを行うと、図163(a)のコマンド群を図163(b)のように変更することができる。図163(b)の1行目の指標「NAV_SET:」は、当該NAV_SETモジュールの先頭アドレスを示す。2行目のコマンド「LDQ A,(LOW _YRI_LMP)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_YRI_LMP」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(有効ランプフラグ)をAレジスタに読み出す。 Now, by making the substitutions in FIG. 148, the command group in FIG. 163(a) can be changed to that in FIG. 163(b). The index "NAV_SET:" on the first line of FIG. 163(b) indicates the starting address of the NAV_SET module. The command "LDQ A, (LOW _YRI_LMP)" on the second line makes the value of the Q register the most significant byte of the address, the value of the least significant byte of the address "_YRI_LMP" the least significant byte of the address, and reads the value stored at that address (valid lamp flag) into the A register.

図163(b)の3行目のコマンド「RCP C,A,@AT_MOD_PRE」によって、Aレジスタの値と、AT状態定義が「準備中」を示す固定値「@AT_MOD_PRE」、ここでは、5とを比較し、5未満であれば、1段上のルーチンに戻る。すなわち、Aレジスタの値が「準備中」を示す固定値未満であれば、当該NAV_SETモジュールを終了する。 The command "RCP C, A, @AT_MOD_PRE" on the third line of Fig. 163(b) compares the value of the A register with the fixed value "@AT_MOD_PRE" (5 in this case) which indicates that the AT state definition is "in preparation", and if it is less than 5, returns to the routine one level above. In other words, if the value of the A register is less than the fixed value indicating "in preparation", the NAV_SET module is terminated.

ここで、図163(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW _YRI_LMP)」2バイト+3行目のコマンド「CP A,@AT_MOD_PRE」2バイト+4行目の「RET C」1バイト=5バイトとなり、総実行サイクルは、2行目3サイクル+3行目2サイクル+4行目3サイクル(1サイクル)=8サイクル(6サイクル)となる。一方、図163(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW _YRI_LMP」2バイト+3行目のコマンド「RCP C,A,@AT_MOD_PRE」2バイト=4バイトとなり、総実行サイクルは、2行目3サイクル+3行目5サイクル(3サイクル)=8サイクル(6サイクル)となる。したがって、図163(a)のコマンド群を図163(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減される。かかる置き換えによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the command group shown in FIG. 163(a) is 2 bytes of the command "LDQ A, (LOW _YRI_LMP)" on the second line + 2 bytes of the command "CP A, @AT_MOD_PRE" on the third line + 1 byte of "RET C" on the fourth line = 5 bytes, and the total execution cycles are 3 cycles on the second line + 2 cycles on the third line + 3 cycles (1 cycle) on the fourth line = 8 cycles (6 cycles). On the other hand, the total command size of the command group shown in FIG. 163(b) is 2 bytes of the command "LDQ A, (LOW _YRI_LMP" on the second line + 2 bytes of the command "RCP C, A, @AT_MOD_PRE" on the third line = 4 bytes, and the total execution cycles are 3 cycles on the second line + 5 cycles on the third line (3 cycles) = 8 cycles (6 cycles). Therefore, by replacing the command group in FIG. 163(a) with the command group in FIG. 163(b), the total command size is reduced by 1 byte. Such a replacement makes it possible to further shorten the commands and ensure the capacity of the control area for performing game control processing.

<XORQ>
図164は、TOK_PRCモジュールの具体的な処理を示したフローチャートである。TOK_PRCモジュールは、上記ステップS600の特別遊技管理処理(図36参照)を実行する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。
<XORQ>
164 is a flow chart showing the specific processing of the TOK_PRC module. The TOK_PRC module executes the special game management processing of step S600 (see FIG. 36). The numerical values of step S in this figure are used only in the explanation of this figure.

メインCPU300aは、図164のように、特別遊技特別図柄判定フラグをロードし(S1)、ロードした特別遊技特別図柄判定フラグを反転し(S2)、反転した特別遊技特別図柄判定フラグをセーブする(S3)。なお、ステップS1は、図36におけるステップS600-5に相当し、ステップS2は、図36におけるステップS600-7に相当し、ステップS3は、図36におけるステップS600-9に相当する。 As shown in FIG. 164, the main CPU 300a loads the special game special symbol determination flag (S1), inverts the loaded special game special symbol determination flag (S2), and saves the inverted special game special symbol determination flag (S3). Note that step S1 corresponds to step S600-5 in FIG. 36, step S2 corresponds to step S600-7 in FIG. 36, and step S3 corresponds to step S600-9 in FIG. 36.

図165は、TOK_PRCモジュールを実現するためのコマンドの一例を説明するための説明図である。図164で示したフローチャートは、例えば、図165に示したプログラムによって実現される。 Figure 165 is an explanatory diagram for explaining an example of a command for implementing the TOK_PRC module. The flowchart shown in Figure 164 is implemented, for example, by the program shown in Figure 165.

図165(a)の1行目の指標「TOK_PRC:」は、当該TOK_PRCモジュールの先頭アドレスを示す。そして、特別遊技管理処理として、図165(a)の2行目のコマンド「LDQ A,(LOW R_STA_TZ)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_STA_TZ」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(特別遊技特別図柄判定フラグ)をAレジスタに読み出す。かかる2行目のコマンドが、図164のステップS1に対応する。3行目のコマンド「XOR 001H」によって、読み出した値(特別遊技特別図柄判定フラグ)と固定値(ここでは001H)との排他的論理和を計算する。これにより、特別遊技特別図柄判定フラグが反転される。かかる2行目のコマンドが、図164のステップS2に対応する。そして、4行目のコマンド「LDQ (LOW R_STA_TZ),A」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_STA_TZ」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに、Aレジスタの値を格納する。かかる4行目のコマンドが、図164のステップS3に対応する。 The index "TOK_PRC:" on the first line of FIG. 165(a) indicates the starting address of the TOK_PRC module. Then, as a special game management process, the command "LDQ A, (LOW R_STA_TZ)" on the second line of FIG. 165(a) sets the value of the Q register as the upper byte of the address, sets the value of the lower byte of the address "R_STA_TZ" as the lower byte of the address, and reads the value stored at that address (special game special symbol determination flag) into the A register. This command on the second line corresponds to step S1 in FIG. 164. The command "XOR 001H" on the third line calculates the exclusive OR of the read value (special game special symbol determination flag) and a fixed value (here, 001H). This inverts the special game special symbol determination flag. This command on the second line corresponds to step S2 in FIG. 164. Then, the command on line 4, "LDQ (LOW R_STA_TZ), A," sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_STA_TZ" to the lower byte of the address, and stores the value of the A register at that address. This command on line 4 corresponds to step S3 in FIG. 164.

ここで、図165(a)のコマンド群を図165(b)のように変更することができる。図165(b)の1行目の指標「TOK_PRC:」は、当該TOK_PRCモジュールの先頭アドレスを示す。そして、特別遊技管理処理を実行すると、2行目のコマンド「XORQ (LOW R_STA_TZ),001H」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_STA_TZ」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(特別遊技特別図柄判定フラグ)と固定値(ここでは001H)との排他的論理和を計算し、計算結果を同アドレスに格納する。 Here, the group of commands in FIG. 165(a) can be changed to that in FIG. 165(b). The index "TOK_PRC:" on the first line of FIG. 165(b) indicates the starting address of the TOK_PRC module. Then, when the special game management process is executed, the command on the second line "XORQ (LOW R_STA_TZ), 001H" sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_STA_TZ" to the lower byte of the address, calculates the exclusive OR of the value stored at that address (special game special symbol determination flag) and a fixed value (here, 001H), and stores the calculation result at the same address.

ここで、図165(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_STA_TZ)」2バイト+3行目コマンド「XOR 001H」2バイト+4行目のコマンド「LDQ (LOW R_STA_TZ),A」2バイト=6バイトとなり、総実行サイクルは、2行目3サイクル+3行目2サイクル+4行目3サイクル=8サイクルとなる。一方、図165(b)に示したコマンド群の総コマンドサイズは、「XORQ (LOW R_STA_TZ),001H」4バイト=4バイトとなり、総実行サイクルは、2行目7サイクル=7サイクルとなる。したがって、図165(a)のコマンド群を図165(b)のコマンド群に置き換えることで、総コマンドサイズが2バイト削減され、総実行サイクルも少なくとも1サイクル削減される。かかる置き換えによって、コマンドの短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the command group shown in FIG. 165(a) is 2 bytes of the command "LDQ A, (LOW R_STA_TZ)" on the second line + 2 bytes of the command "XOR 001H" on the third line + 2 bytes of the command "LDQ (LOW R_STA_TZ), A" on the fourth line = 6 bytes, and the total execution cycle is 3 cycles on the second line + 2 cycles on the third line + 3 cycles on the fourth line = 8 cycles. On the other hand, the total command size of the command group shown in FIG. 165(b) is 4 bytes of "XORQ (LOW R_STA_TZ), 001H" = 4 bytes, and the total execution cycle is 7 cycles on the second line = 7 cycles. Therefore, by replacing the command group in FIG. 165(a) with the command group in FIG. 165(b), the total command size is reduced by 2 bytes and the total execution cycle is also reduced by at least 1 cycle. This replacement shortens commands and reduces processing load, making it possible to secure control area capacity for game control processing.

また、図165(a)と図165(b)とを比較して理解できるように、図165(a)において3行(2行目~4行目)を占有していたコマンド群を、図165(b)においては1行(2行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 165(a) and 165(b), the command group that occupies three lines (lines 2 to 4) in Figure 165(a) can be represented in one line (line 2) in Figure 165(b), making it possible to reduce the number of commands and lighten the design load.

また、ここでは、図165(b)の例では、Aレジスタを利用していない。したがって、Aレジスタの値を意図せず更新してしまうことはない。また、図165(a)の例では、Aレジスタが既に利用されている場合、スタックしてAレジスタの値を退避する必要があったが、ここでは、Aレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 In addition, in the example of FIG. 165(b), the A register is not used. Therefore, the value of the A register will not be updated unintentionally. Also, in the example of FIG. 165(a), if the A register was already in use, it was necessary to save the value of the A register by stacking, but here, since the A register is not used, stack processing is not necessary. In this way, resources can be used efficiently.

<CPQ>
図166は、TEF_SELモジュールの具体的な処理を示したフローチャートである。TOK_PRCモジュールは、大入賞口開放制御処理(図47参照)において、大入賞口閉鎖有効時間を特別電動役物遊技タイマに設定する際(ステップS720-9)に実行される。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。
<CPQ>
Fig. 166 is a flow chart showing the specific processing of the TEF_SEL module. The TOK_PRC module is executed when the special electric device play timer is set to the special winning hole closing effective time (step S720-9) in the special winning hole opening control process (see Fig. 47). The numerical values of step S in this figure are used only in the explanation of this figure.

メインCPU300aは、図166のように、小当たり遊技の大入賞口閉鎖有効時間をセットし(S1)、特別図柄判定フラグをロードし(S2)、ロードした特別図柄判定フラグと、小当たり図柄であることを示す所定の値(ここでは、007H)とを比較する(S3)。なお、特別図柄判定フラグは、ハズレ図柄である場合に00H、大当たり図柄である場合に01H~06Hのいずれか、小当たり図柄である場合に07H~09Hのいずれかが設定される。 As shown in FIG. 166, the main CPU 300a sets the effective time for closing the large prize opening for small prize play (S1), loads the special symbol determination flag (S2), and compares the loaded special symbol determination flag with a predetermined value (here, 007H) indicating a small prize symbol (S3). The special symbol determination flag is set to 00H if the symbol is a losing symbol, one of 01H to 06H if the symbol is a large prize symbol, and one of 07H to 09H if the symbol is a small prize symbol.

そして、比較結果として小当たり図柄であれば(S4におけるYES)、当該TEF_SELモジュールを終了し(S6)、比較結果として小当たり図柄でなければ(S4におけるNO)、すなわち、大当たり図柄であれば、大役遊技の大入賞口閉鎖有効時間テーブルをセットし(S5)、当該TEF_SELモジュールを終了する(S6)。 If the comparison result is a small win symbol (YES in S4), the TEF_SEL module is terminated (S6); if the comparison result is not a small win symbol (NO in S4), that is, if it is a big win symbol, the large win opening closure effective time table for the big prize game is set (S5), and the TEF_SEL module is terminated (S6).

図167は、TEF_SELモジュールを実現するためのコマンドの一例を説明するための説明図である。図166で示したフローチャートは、例えば、図167に示したプログラムによって実現される。 Figure 167 is an explanatory diagram for explaining an example of a command for implementing the TEF_SEL module. The flowchart shown in Figure 166 is implemented, for example, by the program shown in Figure 167.

図167(a)の1行目の指標「TEF_SEL:」は、当該TEF_SELモジュールの先頭アドレスを示す。そして、図167(a)の2行目のコマンド「LD HL,@TMR_TDN_EF3」によって、「@TMR_TDN_EF3」の値がHLレジスタに格納される。なお、「@TMR_TDN_EF3」には、小当たり遊技の大入賞口閉鎖有効時間が設定されている。かかる1行目のコマンドが、図166のステップS1に対応する。 The index "TEF_SEL:" on the first line of FIG. 167(a) indicates the starting address of the TEF_SEL module. The command "LD HL, @TMR_TDN_EF3" on the second line of FIG. 167(a) stores the value of "@TMR_TDN_EF3" in the HL register. Note that "@TMR_TDN_EF3" is set to the effective time for closing the large prize opening for small prize games. This command on the first line corresponds to step S1 in FIG. 166.

図167(a)の3行目のコマンド「LDQ A,(LOW R_ZUG_CHK_FIX)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_ZUG_CHK_FIX」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(特別図柄判定フラグ)をAレジスタに読み出す。かかる3行目のコマンドが、図166のステップS2に対応する。 The command "LDQ A, (LOW R_ZUG_CHK_FIX)" on the third line of FIG. 167(a) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_ZUG_CHK_FIX" to the lower byte of the address, and reads the value stored at that address (special symbol determination flag) into the A register. This command on the third line corresponds to step S2 in FIG. 166.

図167(a)の4行目のコマンド「CP A,@ZUG_SML1」によって、Aレジスタの値と、小当たり図柄1指定データ(小当たり図柄)を示す固定値「@ZUG_SML1」、ここでは、07Hとを比較し、Aレジスタの値が07H未満であれば、キャリーフラグが立たって1となる。かかる4行目のコマンドが、図166のステップS3に対応する。 The command "CP A, @ZUG_SML1" on the fourth line of Figure 167(a) compares the value of the A register with the fixed value "@ZUG_SML1" indicating the small win pattern 1 designation data (small win pattern), here 07H, and if the value of the A register is less than 07H, the carry flag is set to 1. This command on the fourth line corresponds to step S3 in Figure 166.

そして、図167(a)の5行目のコマンド「RET NC」によって、キャリーフラグが1でなければ、1段上のルーチンに戻る。すなわち、Aレジスタの値が小当たり図柄1指定データ以上であれば、当該TEF_SELモジュールを終了する。かかる5行目のコマンドが、図166のステップS4におけるYES、および、ステップS6に対応する。 Then, the command "RET NC" on the fifth line of FIG. 167(a) returns to the routine one step above if the carry flag is not 1. In other words, if the value of the A register is equal to or greater than the data specifying small win pattern 1, the TEF_SEL module is terminated. This command on the fifth line corresponds to YES in step S4 and step S6 in FIG. 166.

一方、キャリーフラグが1であれば、図167(a)の6行目のコマンド「LDQ A,(LOW R_TDN_FLG)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_TDN_FLG」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(特別電動役物指定フラグ)をAレジスタに読み出し、図167(a)の7行目のコマンド「LD HL,D_EFF_TMR-2」によって、転送元となる1バイトデータ群の先頭アドレス「D_EFF_TMR-2」をHLレジスタに設定する。 On the other hand, if the carry flag is 1, the command "LDQ A, (LOW R_TDN_FLG)" on line 6 of Fig. 167(a) sets the value of the Q register to the upper byte of the address, the value of the lower byte of the address "R_TDN_FLG" to the lower byte of the address, the value stored at that address (special electric feature designation flag) is read into the A register, and the command "LD HL, D_EFF_TMR-2" on line 7 of Fig. 167(a) sets the top address "D_EFF_TMR-2" of the 1-byte data group to be transferred in the HL register.

図167(a)の8行目のコマンド「RST WORDSEL」によって、サブルーチンとしてWORDSELモジュールが呼び出され、HLレジスタにAレジスタの値を2回加算し、HLレジスタに示されるアドレスのうち、下位バイトの値がAレジスタに読み出された後、図167(a)の9行目のコマンド「RET」によって、1段上のルーチンに戻る。なお、その後の1段上のルーチンにおいて(その後の処理において)、大役遊技の大入賞口閉鎖有効時間がタイマにセットされることになる。かかる6行目から8行目が図166のステップS5に対応する。 The command "RST WORDSEL" on line 8 of Fig. 167(a) calls the WORDSEL module as a subroutine, adds the value of the A register to the HL register twice, and reads the value of the lower byte of the address indicated in the HL register into the A register. Then, the command "RET" on line 9 of Fig. 167(a) returns to the routine one level higher. In the subsequent routine one level higher (in subsequent processing), the effective time for closing the large prize opening for the large prize game is set in the timer. Lines 6 to 8 correspond to step S5 in Fig. 166.

ここで、図167(a)のコマンド群を図167(b)のように変更することができる。ここでは、図167(a)と実質的に等しい処理についてはその説明を省略し、図167(b)の異なる処理のみを説明する。 The command group in FIG. 167(a) can be changed to that in FIG. 167(b). Here, we will omit the explanation of the processing that is essentially the same as in FIG. 167(a), and only explain the different processing in FIG. 167(b).

図167(b)の3行目のコマンド「CPQ (LOW R_ZUG_CHK_FIX),@ZUG_SML1」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_ZUG_CHK_FIX」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(特別図柄判定フラグ)と、小当たり図柄1指定データ(小当たり図柄)を示す固定値「@ZUG_SML1」、ここでは、07Hとを比較し、07H未満であれば、キャリーフラグが立たって1となる。かかる3行目のコマンドが、図166のステップS2およびステップS3に対応する。かかるコマンドのコマンドサイズは「3」であり、実行サイクルは「4」である。 The command "CPQ (LOW R_ZUG_CHK_FIX), @ZUG_SML1" on the third line of Figure 167 (b) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_ZUG_CHK_FIX" to the lower byte of the address, and compares the value stored at that address (special pattern determination flag) with the fixed value "@ZUG_SML1" indicating the small win pattern 1 designation data (small win pattern), here 07H, and if it is less than 07H, the carry flag is set to 1. This command on the third line corresponds to steps S2 and S3 of Figure 166. The command size of this command is "3", and the execution cycle is "4".

ここで、図167(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LD HL,@TMR_TDN_EF3」3バイト+3行目コマンド「LDQ A,(LOW R_ZUG_CHK_FIX)」2バイト+4行目のコマンド「CP A,@ZUG_SML1」2バイト+5行目の「RET NC」1バイト+6行目のコマンド「LDQ A,(LOW R_TDN_FLG)」2バイト+7行目のコマンド「LD HL,D_EFF_TMR-2」3バイト+8行目のコマンド「RST WORDSEL」1バイト+9行目「RET」1バイト=15バイトとなり、実行サイクルは、2行目3サイクル+3行目2サイクル+4行目2サイクル+5行目3サイクル(1サイクル)+6行目2サイクル+7行目3サイクル+8行目4サイクル+9行目3サイクル=22サイクル(20サイクル)となる。なお、括弧内のサイクル数は、コマンド「RET NC」によって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。 Here, the total command size of the command group shown in FIG. 167(a) is the following: 3 bytes of the command "LD HL, @TMR_TDN_EF3" on the second line + 2 bytes of the command "LDQ A, (LOW R_ZUG_CHK_FIX)" on the third line + 2 bytes of the command "CP A, @ZUG_SML1" on the fourth line + 1 byte of "RET NC" on the fifth line + 2 bytes of the command "LDQ A, (LOW R_TDN_FLG)" on the sixth line + 3 bytes of the command "LD HL, D_EFF_TMR-2" on the seventh line + 3 bytes of the command "RST" on the eighth line 1 byte of "WORDSEL" + 1 byte of "RET" on line 9 = 15 bytes, and the execution cycles are 3 cycles on line 2 + 2 cycles on line 3 + 2 cycles on line 4 + 3 cycles on line 5 (1 cycle) + 2 cycles on line 6 + 3 cycles on line 7 + 4 cycles on line 8 + 3 cycles on line 9 = 22 cycles (20 cycles). Note that the number of cycles in parentheses indicates the execution cycles if the "RET NC" command is not used to move to the next higher routine.

一方、図167(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LD HL,@TMR_TDN_EF3」3バイト+3行目コマンド「CPQ (LOW R_ZUG_CHK_FIX),@ZUG_SML1」3バイト+4行目の「RET NC」1バイト+5行目のコマンド「LDQ A,(LOW R_TDN_FLG)」2バイト+6行目のコマンド「LD HL,D_EFF_TMR-2」3バイト+7行目のコマンド「RST WORDSEL」1バイト+8行目「RET」1バイト=14バイトとなり、実行サイクルは、2行目3サイクル+3行目4サイクル+4行目3サイクル(1サイクル)+5行目2サイクル+6行目3サイクル+7行目4サイクル+8行目3サイクル=22サイクル(20サイクル)となる。なお、括弧内のサイクル数は、コマンド「RET NC」によって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。 On the other hand, the total command size of the command group shown in FIG. 167(b) is 3 bytes of the command "LD HL, @TMR_TDN_EF3" on line 2 + 3 bytes of the command "CPQ (LOW R_ZUG_CHK_FIX), @ZUG_SML1" on line 3 + 1 byte of the command "RET NC" on line 4 + 2 bytes of the command "LDQ A, (LOW R_TDN_FLG)" on line 5 + 3 bytes of the command "LD HL, D_EFF_TMR-2" on line 6 + 1 byte of the command "RST WORDSEL" on line 7 + 1 byte of the command "RET" on line 8 = 14 bytes, and the execution cycles are 3 cycles on line 2 + 4 cycles on line 3 + 3 cycles on line 4 (1 cycle) + 2 cycles on line 5 + 3 cycles on line 6 + 4 cycles on line 7 + 3 cycles on line 8 = 22 cycles (20 cycles). Note that the number of cycles in parentheses indicates the execution cycles if the "RET NC" command is not used to move to the next higher routine.

したがって、図167(a)のコマンド群を図167(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減される。かかる置き換えによって、コマンドの短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Therefore, by replacing the command group in FIG. 167(a) with the command group in FIG. 167(b), the total command size is reduced by 1 byte. This replacement shortens the commands and makes it possible to secure the capacity of the control area for performing game control processing.

また、図167(a)と図167(b)とを比較して理解できるように、図167(a)において2行(3行目、4行目)を占有していたコマンド群を、図167(b)においては1行(3行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 167(a) and 167(b), the command group that occupies two lines (third and fourth lines) in Figure 167(a) can be represented in one line (third line) in Figure 167(b), making it possible to reduce the number of commands and lighten the design load.

また、ここでは、図167(b)の例では、3行目のコマンドにおいてAレジスタを利用していない。したがって、Aレジスタの値を意図せず更新してしまうことはない。また、図167(a)の例では、3行目のコマンドを実行する際にAレジスタが既に利用されている場合、スタックしてAレジスタの値を退避する必要があったが、ここでは、Aレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 In addition, in the example of FIG. 167(b), the A register is not used in the command on line 3. Therefore, the value of the A register will not be updated unintentionally. Also, in the example of FIG. 167(a), if the A register was already in use when executing the command on line 3, it would have been necessary to stack and save the value of the A register, but here, since the A register is not used, stack processing is not required. In this way, resources can be used efficiently.

<JTANDQ>
図168は、SWI_PRCモジュールの具体的な処理を示したフローチャートである。SWI_PRCモジュールは、上記ステップS500のスイッチ管理処理(図28参照)を実行する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。
<JTANDQ>
168 is a flow chart showing the specific processing of the SWI_PRC module. The SWI_PRC module executes the switch management processing of step S500 (see FIG. 28). The numerical values of step S in this figure are used only in the explanation of this figure.

メインCPU300aは、図168のように、第1可変始動口検出スイッチ120Bsの検出時であるかを判定し(S1)、第1可変始動口検出スイッチ120Bsの検出時であれば(S1におけるYES)、第1始動口通過処理(S2)および普通電動役物入賞時確認処理(S3)を実行する。一方、第1可変始動口検出スイッチ120Bsの検出時でなければ(S1におけるNO)、第1始動口通過処理(S2)および普通電動役物入賞時確認処理(S3)がスキップされる。なお、ステップS1は、図28におけるステップS500-7に相当し、ステップS2は、図28におけるステップS520に相当し、ステップS3)は、図28におけるステップS500-9に相当する。 As shown in FIG. 168, the main CPU 300a determines whether the first variable start hole detection switch 120Bs is detected (S1), and if the first variable start hole detection switch 120Bs is detected (YES in S1), it executes the first start hole passing process (S2) and the normal electric role winning confirmation process (S3). On the other hand, if the first variable start hole detection switch 120Bs is not detected (NO in S1), the first start hole passing process (S2) and the normal electric role winning confirmation process (S3) are skipped. Note that step S1 corresponds to step S500-7 in FIG. 28, step S2 corresponds to step S520 in FIG. 28, and step S3 corresponds to step S500-9 in FIG. 28.

図169は、SWI_PRCモジュールを実現するためのコマンドの一例を説明するための説明図である。図168で示したフローチャートは、例えば、図169に示したプログラムによって実現される。 Figure 169 is an explanatory diagram for explaining an example of a command for implementing the SWI_PRC module. The flowchart shown in Figure 168 is implemented, for example, by the program shown in Figure 169.

図169(a)の1行目の指標「SWI_PRC:」は、当該SWI_PRCモジュールの先頭アドレスを示す。そして、図169(a)の2行目のコマンド「LDQ A,(LOW R_IN3_PON)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_IN3_PON」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値をAレジスタに読み出す。なお、ここで、同アドレスに格納された値には、例えば、最下位ビットに、第1固定始動口検出スイッチ120As(入力部)の検出結果が保持され、下位2ビット目に、第2始動口検出スイッチ122s(入力部)の検出結果が保持され、下位3ビット目に、第1可変始動口検出スイッチ120Bs(入力部)の検出結果が保持される。これら各ビットは、検出スイッチによって遊技球が入球したことが検出された場合に「1」となり、検出スイッチによって遊技球が入球したことが検出されていない場合に「0」となる。 The index "SWI_PRC:" on the first line of FIG. 169(a) indicates the starting address of the SWI_PRC module. Then, the command "LDQ A, (LOW R_IN3_PON)" on the second line of FIG. 169(a) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_IN3_PON" to the lower byte of the address, and reads the value stored at that address into the A register. Note that here, for example, the value stored at the same address holds the detection result of the first fixed start port detection switch 120As (input section) in the lowest bit, holds the detection result of the second start port detection switch 122s (input section) in the lowest 2 bits, and holds the detection result of the first variable start port detection switch 120Bs (input section) in the lowest 3 bits. Each of these bits becomes "1" when the detection switch detects that a game ball has entered the machine, and becomes "0" when the detection switch does not detect that a game ball has entered the machine.

3行目のコマンド「AND A,@IN3_ST2_BIT」によって、読み出した値と固定値「@IN3_ST2_BIT(ここでは00000100b)との論理積を計算する。これにより、読み出した値の下位3ビット目以外が0にされ(マスクされ)、読み出した値の下位3ビット目が0であればゼロフラグ=1となり、読み出した値の下位3ビット目が1であればゼロフラグ=0となる。つまり、第1可変始動口検出スイッチ120Bsの検出結果が1であれば(遊技球の入球が検出されていれば)ゼロフラグ=0となり、第1可変始動口検出スイッチ120Bsの検出結果が0であれば(遊技球の入球が検出されていなければ)ゼロフラグ=0となる。 The command on the third line, "AND A, @IN3_ST2_BIT", calculates the logical product of the read value and the fixed value "@IN3_ST2_BIT (here, 00000100b)". As a result, all bits except the 3rd lowest bit of the read value are set to 0 (masked), and if the 3rd lowest bit of the read value is 0, the zero flag = 1, and if the 3rd lowest bit of the read value is 1, the zero flag = 0. In other words, if the detection result of the first variable start hole detection switch 120Bs is 1 (if a game ball has been detected), the zero flag = 0, and if the detection result of the first variable start hole detection switch 120Bs is 0 (if a game ball has not been detected), the zero flag = 0.

そして、4行目のコマンド「JR Z,SWI_PRC_20」によって、ゼロフラグが1(Z)であれば、SWI_PRC_20(7行目)に移動する。かかる2行目~4行目のコマンドが、図168のステップS1に対応する。 Then, the command on line 4, "JR Z, SWI_PRC_20", moves to SWI_PRC_20 (line 7) if the zero flag is 1 (Z). The commands on lines 2 to 4 correspond to step S1 in FIG. 168.

一方、4行目のコマンド「JR Z,SWI_PRC_20」によって、ゼロフラグが1でなければ、5行目のコマンド「CALLF STA_PAS」によって、サブルーチンとしてSTA_PASモジュールが呼び出され、STA_PASモジュールにより第1始動口通過処理が実行される。かかる5行目のコマンドが、図168のステップS2に対応する。また、6行目のコマンド「CALLF FDN_CHK」によって、サブルーチンとしてFDN_CHKモジュールが呼び出され、FDN_CHKモジュールにより普通電動役物入賞時確認処理が実行される。かかる6行目のコマンドが、図168のステップS3に対応する。 On the other hand, if the zero flag is not 1 by the command "JR Z,SWI_PRC_20" on the fourth line, the command "CALLF STA_PAS" on the fifth line calls the STA_PAS module as a subroutine, and the STA_PAS module executes the first starting gate passing process. This command on the fifth line corresponds to step S2 in FIG. 168. Also, the command "CALLF FDN_CHK" on the sixth line calls the FDN_CHK module as a subroutine, and the FDN_CHK module executes the confirmation process when a normal electric role wins. This command on the sixth line corresponds to step S3 in FIG. 168.

ここで、図169(a)のコマンド群を図169(b)のように変更することができる。ここでは、図169(a)と実質的に等しい処理についてはその説明を省略し、図169(b)の異なる処理のみを説明する。 The command group in FIG. 169(a) can be changed to that in FIG. 169(b). Here, we will omit the explanation of the processing that is essentially the same as in FIG. 169(a), and only explain the different processing in FIG. 169(b).

図169(b)の2行目のコマンド「JTANDQ Z,(LOW R_IN3_PON),@IN3_ST2_BIT,SWI_PRC_20」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_IN3_PON」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値と、固定値「@IN3_ST2_BIT」との論理積を計算し、ゼロフラグが1であればSWI_PRC_20に移動する。かかる2行目のコマンドが、図168のステップS1に対応する。かかるコマンドのコマンドサイズは「4」であり、実行サイクルは「5(6)」である。なお、括弧内のサイクル数は、ゼロフラグが1でありSWI_PRC_20に移動した場合の実行サイクルを示している。 The command "JTANDQ Z, (LOW R_IN3_PON), @IN3_ST2_BIT, SWI_PRC_20" on the second line of Figure 169 (b) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_IN3_PON" to the lower byte of the address, calculates the logical product of the value stored at that address and the fixed value "@IN3_ST2_BIT", and if the zero flag is 1, moves to SWI_PRC_20. This command on the second line corresponds to step S1 in Figure 168. The command size of this command is "4", and the execution cycle is "5 (6)". Note that the number of cycles in parentheses indicates the execution cycle when the zero flag is 1 and moves to SWI_PRC_20.

ここで、図169(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_IN3_PON)」2バイト+3行目コマンド「AND A,@IN3_ST2_BIT」2バイト+4行目のコマンド「JR Z,SWI_PRC_20」2バイト+5行目のコマンド「CALLF STA_PAS」2バイト+6行目のコマンド「CALLF FDN_CHK」2バイト=10バイトとなり、総実行サイクルは、2行目3サイクル+3行目2サイクル+4行目2(3)サイクル+5行目4サイクル+6行目4サイクル=15(16)サイクルとなる。なお、括弧内のサイクル数は、ゼロフラグが1でありSWI_PRC_20に移動した場合の実行サイクルを示している。 The total command size of the command group shown in FIG. 169(a) is 2 bytes of the command "LDQ A, (LOW R_IN3_PON)" on the second line + 2 bytes of the command "AND A, @IN3_ST2_BIT" on the third line + 2 bytes of the command "JR Z, SWI_PRC_20" on the fourth line + 2 bytes of the command "CALLF STA_PAS" on the fifth line + 2 bytes of the command "CALLF FDN_CHK" on the sixth line = 10 bytes, and the total execution cycles are 3 cycles on the second line + 2 cycles on the third line + 2 (3) cycles on the fourth line + 4 cycles on the fifth line + 4 cycles on the sixth line = 15 (16) cycles. The number of cycles in parentheses indicates the execution cycles when the zero flag is 1 and it moves to SWI_PRC_20.

一方、図169(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「JTANDQ Z,(LOW R_IN3_PON),@IN3_ST2_BIT,SWI_PRC_20」4バイト+3行目のコマンド「CALLF STA_PAS」2バイト+4行目のコマンド「CALLF FDN_CHK」2バイト=8バイトとなり、総実行サイクルは、2行目5(6)サイクル+3行目4サイクル+4行目4サイクル=13(14)サイクルとなる。 On the other hand, the total command size of the command group shown in FIG. 169(b) is 4 bytes of the command "JTANDQ Z, (LOW R_IN3_PON), @IN3_ST2_BIT, SWI_PRC_20" on line 2 + 2 bytes of the command "CALLF STA_PAS" on line 3 + 2 bytes of the command "CALLF FDN_CHK" on line 4 = 8 bytes, and the total execution cycles are 5 (6) cycles on line 2 + 4 cycles on line 3 + 4 cycles on line 4 = 13 (14) cycles.

したがって、図169(a)のコマンド群を図169(b)のコマンド群に置き換えることで、総コマンドサイズが2バイト削減され、総実行サイクルも少なくとも2サイクル削減される。かかる置き換えによって、コマンドの短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Therefore, by replacing the command group in FIG. 169(a) with the command group in FIG. 169(b), the total command size is reduced by 2 bytes, and the total execution cycles are also reduced by at least 2 cycles. This replacement shortens the commands and reduces the processing load, making it possible to secure the capacity of the control area for performing game control processing.

また、図169(a)と図169(b)とを比較して理解できるように、図169(a)において3行(2行目~4行目)を占有していたコマンド群を、図169(b)においては1行(2行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 169(a) and 169(b), the command group that occupies three lines (lines 2 to 4) in Figure 169(a) can be represented in one line (line 2) in Figure 169(b), making it possible to reduce the number of commands and lighten the design load.

また、図169(b)の例では、Aレジスタを利用していない。したがって、Aレジスタの値を意図せず更新してしまうことはない。また、図169(a)の例では、Aレジスタが既に利用されている場合、スタックしてAレジスタの値を退避する必要があったが、ここでは、Aレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 In addition, in the example of FIG. 169(b), the A register is not used. Therefore, the value of the A register will not be updated unintentionally. Also, in the example of FIG. 169(a), if the A register was already in use, it was necessary to save the value of the A register by stacking, but here, since the A register is not used, stack processing is not required. In this way, resources can be used efficiently.

<OUT>
図170は、CPUINITモジュールの具体的な処理を示したフローチャートである。CPUINITモジュールは、上記CPU初期化処理(図22参照)を実行する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。
<OUT>
170 is a flow chart showing the specific processing of the CPUINIT module. The CPUINIT module executes the CPU initialization processing (see FIG. 22). The numerical values of step S in this figure are used only in the explanation of this figure.

メインCPU300aは、図170のように、RAM300cへのアクセスを許可するアクセス許可処理を実行する(S1)。なお、ステップS1は、図22におけるステップS100-9に相当する。 The main CPU 300a executes access permission processing to permit access to the RAM 300c (S1), as shown in FIG. 170. Note that step S1 corresponds to step S100-9 in FIG. 22.

図171は、CPUINITモジュールを実現するためのコマンドの一例を説明するための説明図である。図170で示したフローチャートは、例えば、図171に示したプログラムによって実現される。 Figure 171 is an explanatory diagram for explaining an example of a command for implementing the CPUINIT module. The flowchart shown in Figure 170 is implemented, for example, by the program shown in Figure 171.

図171(a)の1行目の指標「CPUINIT:」は、当該CPUINITモジュールの先頭アドレスを示す。そして、図171(a)の2行目のコマンド「LD A,(@RAMENBL)」によって、アクセスを許可することを示す固定値「@RAMENBL」(ここでは、1)をAレジスタに読み出す。そして、図171(a)の3行目のコマンド「OUT (@RAP____),A」によって、Uレジスタの値をアドレスの上位1バイトとし、RAMアクセスプロテクトレジスタポート(内部レジスタI/Oポート)のアドレスの下位1バイトを示す固定値「@RAP____」を下位1バイトとし、そのアドレスに、Aレジスタの値(1)を出力する。なお、Uレジスタには、RAMアクセスプロテクトレジスタポート(内部レジスタI/Oポート)のアドレスの上位1バイト(例えば「FEH」)が予め設定されている。 The index "CPUINIT:" on the first line of FIG. 171(a) indicates the start address of the CPUINIT module. The command "LD A, (@RAMENBL)" on the second line of FIG. 171(a) reads the fixed value "@RAMENBL" (here, 1) indicating that access is permitted into the A register. The command "OUT (@RAP___), A" on the third line of FIG. 171(a) sets the value of the U register to the upper byte of the address, sets the fixed value "@RAP___" indicating the lower byte of the address of the RAM access protection register port (internal register I/O port) to the lower byte, and outputs the value of the A register (1) to that address. The upper byte (for example, "FEH") of the address of the RAM access protection register port (internal register I/O port) is preset in the U register.

ここで、図171(a)のコマンド群を図171(b)のように変更することができる。ここでは、図171(a)と実質的に等しい処理についてはその説明を省略し、図171(b)の異なる処理のみを説明する。 The command group in FIG. 171(a) can be changed to that in FIG. 171(b). Here, we will omit the explanation of the processing that is essentially the same as in FIG. 171(a), and only explain the different processing in FIG. 171(b).

図171(b)の2行目のコマンド「OUT (@RAP____),@RAMENBL」によって、Uレジスタの値をアドレスの上位1バイトとし、RAMアクセスプロテクトレジスタポート(内部レジスタI/Oポート)のアドレスの下位1バイトを示す固定値「@RAP____」を下位1バイトとし、そのアドレスに、固定値「@RAMENBL」、すなわち、1を出力する。かかるコマンドのコマンドサイズは「3」であり、実行サイクルは「4」である。 The command "OUT (@RAP___), @RAMENBL" on the second line of Figure 171 (b) sets the value of the U register to the upper byte of the address, sets the fixed value "@RAP___" indicating the lower byte of the address of the RAM access protect register port (internal register I/O port) to the lower byte, and outputs the fixed value "@RAMENBL", i.e., 1, to that address. The command size of this command is "3", and the execution cycle is "4".

ここで、図171(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LD A,(@RAMENBL)」2バイト+3行目コマンド「OUT (@RAP____),A」2バイト=4バイトとなり、総実行サイクルは、2行目2サイクル+3行目3サイクル=5サイクルとなる。 The total command size of the command group shown in FIG. 171(a) is 2 bytes for the command "LD A, (@RAMENBL)" on the second line + 2 bytes for the command "OUT (@RAP____), A" on the third line = 4 bytes, and the total execution cycles are 2 cycles on the second line + 3 cycles on the third line = 5 cycles.

一方、図171(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「OUT (@RAP____),@RAMENBL」3バイト=3バイトとなり、総実行サイクルは、2行目4サイクル=4サイクルとなる。 On the other hand, the total command size of the command group shown in FIG. 171(b) is the command "OUT (@RAP_____), @RAMENBL" on line 2, which is 3 bytes = 3 bytes, and the total execution cycles are line 2, which is 4 cycles = 4 cycles.

したがって、図171(a)のコマンド群を図171(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減され、総実行サイクルも少なくとも1サイクル削減される。かかる置き換えによって、コマンドの短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Therefore, by replacing the command group in FIG. 171(a) with the command group in FIG. 171(b), the total command size is reduced by 1 byte, and the total execution cycle is also reduced by at least 1 cycle. This replacement shortens the commands and reduces the processing load, making it possible to secure the capacity of the control area for performing game control processing.

また、図171(a)と図171(b)とを比較して理解できるように、図171(a)において2行(2行目~3行目)を占有していたコマンド群を、図171(b)においては1行(2行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 171(a) and 171(b), a group of commands that occupy two lines (lines 2 and 3) in Figure 171(a) can be represented in one line (line 2) in Figure 171(b), making it possible to reduce the number of commands and lighten the design load.

また、図171(b)の例では、Aレジスタを利用していない。したがって、Aレジスタの値を意図せず更新してしまうことはない。また、図171(a)の例では、Aレジスタが既に利用されている場合、スタックしてAレジスタの値を退避する必要があったが、ここでは、Aレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 In addition, in the example of FIG. 171(b), the A register is not used. Therefore, the value of the A register will not be updated unintentionally. Also, in the example of FIG. 171(a), if the A register was already in use, it was necessary to save the value of the A register by stacking it, but here, since the A register is not used, stack processing is not required. In this way, resources can be used efficiently.

図172は、TMR_IPTモジュールを説明するための説明図である。図172に示したTMR_IPTモジュールは、図98に示したタイマ割込み処理を実行する。 Figure 172 is an explanatory diagram for explaining the TMR_IPT module. The TMR_IPT module shown in Figure 172 executes the timer interrupt processing shown in Figure 98.

図172(a)の1行目の指標「TMR_IPT:」は、当該TMR_IPTモジュールの先頭アドレスを示す。そして、図172(a)の2行目のコマンド「LD A,@TOCRVAL」によって、アクセスを許可することを示す固定値「@TOCRVAL」(ここでは、1)をAレジスタに読み出す。そして、図172(a)の3行目のコマンド「OUT (@PTOCR__),A」によって、Uレジスタの値をアドレスの上位1バイトとし、RAMアクセスプロテクトレジスタポート(内部レジスタI/Oポート)のアドレスの下位1バイトを示す固定値「@PTOCR__」をアドレスの下位1バイトとし、そのアドレスに、Aレジスタの値(1)を出力する。なお、Uレジスタには、RAMアクセスプロテクトレジスタポート(内部レジスタI/Oポート)のアドレスの上位1バイト(例えば「FEH」)が予め設定されている。 The index "TMR_IPT:" on the first line of FIG. 172(a) indicates the start address of the TMR_IPT module. The command "LD A, @TOCRVAL" on the second line of FIG. 172(a) reads the fixed value "@TOCRVAL" (here, 1) indicating that access is permitted into the A register. The command "OUT (@PTOCR_), A" on the third line of FIG. 172(a) sets the value of the U register to the upper byte of the address, sets the fixed value "@PTOCR_" indicating the lower byte of the address of the RAM access protect register port (internal register I/O port) to the lower byte of the address, and outputs the value of the A register (1) to that address. The upper byte (e.g. "FEH") of the address of the RAM access protect register port (internal register I/O port) is preset in the U register.

ここで、図172(a)のコマンド群を図172(b)のように変更することができる。ここでは、図172(a)と実質的に等しい処理についてはその説明を省略し、図172(b)の異なる処理のみを説明する。 The command group in FIG. 172(a) can be changed to that in FIG. 172(b). Here, we will omit the explanation of the processing that is essentially the same as in FIG. 172(a), and only explain the different processing in FIG. 172(b).

図172(b)の2行目のコマンド「OUT (@PTOCR__),@TOCRVAL」によって、Uレジスタの値をアドレスの上位1バイトとし、RAMアクセスプロテクトレジスタポート(内部レジスタI/Oポート)のアドレスの下位1バイトを示す固定値「@PTOCR__」をアドレスの下位1バイトとし、そのアドレスに、固定値「@TOCRVAL」、すなわち、1を出力する。かかるコマンドのコマンドサイズは「3」であり、実行サイクルは「4」である。 The command "OUT (@PTOCR_), @TOCRVAL" on the second line of Figure 172 (b) sets the value of the U register to the upper byte of the address, sets the fixed value "@PTOCR_" indicating the lower byte of the address of the RAM access protect register port (internal register I/O port) to the lower byte of the address, and outputs the fixed value "@TOCRVAL", i.e., 1, to that address. The command size of this command is "3", and the execution cycle is "4".

ここで、図172(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LD A,@TOCRVAL」2バイト+3行目のコマンド「OUT (@PTOCR__),A」2バイト=4バイトとなり、総実行サイクルは、2行目2サイクル+3行目3サイクル=5サイクルとなる。 The total command size of the command group shown in FIG. 172(a) is 2 bytes of the command "LD A, @TOCRVAL" on the second line + 2 bytes of the command "OUT (@PTOCR___), A" on the third line = 4 bytes, and the total execution cycles are 2 cycles on the second line + 3 cycles on the third line = 5 cycles.

一方、図172(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「OUT (@PTOCR__),@TOCRVAL」3バイト=3バイトとなり、総実行サイクルは、2行目4サイクル=4サイクルとなる。 On the other hand, the total command size of the command group shown in FIG. 172(b) is the command "OUT (@PTOCR___), @TOCRVAL" on the second line, 3 bytes = 3 bytes, and the total execution cycles are 4 cycles on the second line = 4 cycles.

したがって、図172(a)のコマンド群を図172(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減され、総実行サイクルも少なくとも1サイクル削減される。かかる置き換えによって、コマンドの短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Therefore, by replacing the command group in FIG. 172(a) with the command group in FIG. 172(b), the total command size is reduced by 1 byte, and the total execution cycle is also reduced by at least 1 cycle. This replacement shortens the commands and reduces the processing load, making it possible to secure the capacity of the control area for performing game control processing.

また、図172(a)と図172(b)とを比較して理解できるように、図172(a)において2行(2行目~3行目)を占有していたコマンド群を、図172(b)においては1行(2行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 172(a) and 172(b), a group of commands that occupy two lines (lines 2 and 3) in Figure 172(a) can be represented in one line (line 2) in Figure 172(b), making it possible to reduce the number of commands and lighten the design load.

また、図172(b)の例では、Aレジスタを利用していない。したがって、Aレジスタの値を意図せず更新してしまうことはない。また、図172(a)の例では、Aレジスタが既に利用されている場合、スタックしてAレジスタの値を退避する必要があったが、ここでは、Aレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 In addition, in the example of FIG. 172(b), the A register is not used. Therefore, the value of the A register will not be updated unintentionally. Also, in the example of FIG. 172(a), if the A register was already in use, it was necessary to save the value of the A register by stacking, but here, since the A register is not used, stack processing is not required. In this way, resources can be used efficiently.

<LDQ>
図173は、FZ_SPNモジュールの具体的な処理を示したフローチャートである。FZ_SPNモジュールは、上記普通図柄変動中処理(図53参照)を実行する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。
<LDQ>
Fig. 173 is a flow chart showing the specific processing of the FZ_SPN module. The FZ_SPN module executes the above-mentioned normal pattern variation processing (see Fig. 53). The numerical values of step S in this figure are used only in the explanation of this figure.

メインCPU300aは、図173のように、普通図柄表示図柄カウンタに、普通図柄停止図柄番号(カウンタ値)をセーブする。(S1)。なお、ステップS1は、図53におけるステップS820-9に相当する。 The main CPU 300a saves the normal symbol stop symbol number (counter value) in the normal symbol display symbol counter as shown in FIG. 173 (S1). Note that step S1 corresponds to step S820-9 in FIG. 53.

図174は、FZ_SPNモジュールを実現するためのコマンドの一例を説明するための説明図である。図173で示したフローチャートは、例えば、図174に示したプログラムによって実現される。 Figure 174 is an explanatory diagram for explaining an example of a command for implementing the FZ_SPN module. The flowchart shown in Figure 173 is implemented, for example, by the program shown in Figure 174.

図174(a)の1行目の指標「FZ_SPN:」は、当該FZ_SPNモジュールの先頭アドレスを示す。そして、図174(a)の2行目のコマンド「LDQ A,(LOW R_FZ_STP)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FZ_STP」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(普通図柄停止図柄番号)をAレジスタに読み出す。 The index "FZ_SPN:" on the first line of Fig. 174(a) indicates the starting address of the FZ_SPN module. Then, the command "LDQ A, (LOW R_FZ_STP)" on the second line of Fig. 174(a) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_FZ_STP" to the lower byte of the address, and reads the value stored at that address (normal symbol stop symbol number) into the A register.

そして、図174(a)の2行目のコマンド「LDQ (LOW R_FZ_DSP),A」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FZ_DSP」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレス(普通図柄表示図柄カウンタのアドレス)にAレジスタの値を格納する。 Then, the command "LDQ (LOW R_FZ_DSP), A" on the second line of Figure 174 (a) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_FZ_DSP" to the lower byte of the address, and stores the value of the A register in that address (the address of the normal symbol display symbol counter).

ここで、図174(a)のコマンド群を図174(b)のように変更することができる。ここでは、図174(a)と実質的に等しい処理についてはその説明を省略し、図174(b)の異なる処理のみを説明する。 The commands in FIG. 174(a) can be changed to those in FIG. 174(b). Here, we will omit the explanation of the processes that are essentially the same as those in FIG. 174(a), and only explain the different processes in FIG. 174(b).

図174(b)の2行目のコマンド「LDQ (LOW R_FZ_DSP),(LOW R_FZ_STP)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FZ_STP」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値を、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FZ_DSP」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納する。 The command "LDQ (LOW R_FZ_DSP), (LOW R_FZ_STP)" on the second line of Figure 174 (b) sets the value of the Q register to the most significant byte of the address, the value of the least significant byte of the address "R_FZ_STP" to the least significant byte of the address, and the value stored at that address is stored at that address, with the value of the Q register set to the most significant byte of the address and the value of the least significant byte of the address "R_FZ_DSP" set to the least significant byte of the address.

ここで、図174(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_FZ_STP)」2バイト+3行目コマンド「LDQ (LOW R_FZ_DSP),A」2バイト=4バイトとなり、総実行サイクルは、2行目3サイクル+3行目3サイクル=6サイクルとなる。 The total command size of the command group shown in FIG. 174(a) is 2 bytes of the command "LDQ A, (LOW R_FZ_STP)" on the second line + 2 bytes of the command "LDQ (LOW R_FZ_DSP), A" on the third line = 4 bytes, and the total execution cycles are 3 cycles on the second line + 3 cycles on the third line = 6 cycles.

一方、図174(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ (LOW R_FZ_DSP),(LOW R_FZ_STP)」4バイト=4バイトとなり、総実行サイクルは、2行目6サイクル=6サイクルとなる。 On the other hand, the total command size of the command group shown in FIG. 174(b) is the command "LDQ (LOW R_FZ_DSP), (LOW R_FZ_STP)" on the second line, which is 4 bytes = 4 bytes, and the total execution cycles are 6 cycles on the second line = 6 cycles.

したがって、図174(a)と図174(b)とを比較して理解できるように、図174(a)において2行(2行目~3行目)を占有していたコマンド群を、総コマンドサイズおよび総実行サイクルを変更することなく、図174(b)においては1行(2行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 Therefore, as can be seen by comparing Figures 174(a) and 174(b), the command group that occupies two lines (lines 2 and 3) in Figure 174(a) can be represented in one line (line 2) in Figure 174(b) without changing the total command size or total execution cycles, making it possible to reduce the number of commands and lighten the design load.

また、図174(b)の例では、Aレジスタを利用していない。したがって、Aレジスタの値を意図せず更新してしまうことはない。また、図174(a)の例では、Aレジスタが既に利用されている場合、スタックしてAレジスタの値を退避する必要があったが、ここでは、Aレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 In addition, in the example of FIG. 174(b), the A register is not used. Therefore, the value of the A register will not be updated unintentionally. Also, in the example of FIG. 174(a), if the A register was already in use, it was necessary to save the value of the A register by stacking, but here, since the A register is not used, stack processing is not required. In this way, resources can be used efficiently.

図175は、CPUINITモジュールを実現するためのコマンドの一例を説明するための説明図である。ここで、特別遊技は、低確率遊技状態および高確率遊技状態のいずれかの遊技状態にて遊技が進行する。そして、遊技機100には、遊技状態が高確率遊技状態であることを示す表示器が設けられており、遊技状態が高確率遊技状態である場合には、当該表示器が点灯する。そして、電断復帰時において高確率遊技状態であることを遊技者に報知しない場合(所謂潜伏中)には、当該表示器を非表示にすることができる。このとき、実際の遊技状態に基づいて当該表示器の点灯有無を判定してしまうと、電断復帰時の遊技状態が高確率遊技状態であれば、当該表示器を点灯させてしまう。そこで、電断復帰時から初めて大役遊技が開始されるまでの間、潜伏中であることを示すフラグを用意し、そのフラグに基づいて当該表示器の点灯有無を判定するようになされている。 Figure 175 is an explanatory diagram for explaining an example of a command for realizing the CPUINIT module. Here, the special game proceeds in either a low probability game state or a high probability game state. The gaming machine 100 is provided with an indicator indicating that the game state is a high probability game state, and when the game state is a high probability game state, the indicator is lit. When the high probability game state is not notified to the player when the power is restored (so-called latency), the indicator can be made invisible. At this time, if the indicator is judged to be lit or not based on the actual game state, the indicator will be lit if the game state at the time of power restoration is a high probability game state. Therefore, a flag indicating latency is prepared from the time of power restoration until the first start of the big role game, and the indicator is judged to be lit or not based on the flag.

図175(a)の1行目の指標「CPUINIT:」は、当該CPUINITモジュールの先頭アドレスを示す。そして、図175(a)の2行目のコマンド「LDQ A,(LOW R_KAK_FLG)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_KAK_FLG」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレス(高確率遊技状態であるか否かを示すフラグのアドレス)に格納された値(高確率遊技状態であれば1、高確率遊技状態でなければ0)をAレジスタに読み出す。 The index "CPUINIT:" on the first line of FIG. 175(a) indicates the starting address of the CPUINIT module. The command "LDQ A, (LOW R_KAK_FLG)" on the second line of FIG. 175(a) sets the value of the Q register to the most significant byte of the address, sets the value of the least significant byte of the address "R_KAK_FLG" to the most significant byte of the address, and reads the value stored at that address (the address of the flag indicating whether or not the game is in a high probability game state) (1 if the game is in a high probability game state, 0 if the game is not in a high probability game state) into the A register.

そして、図175(a)の3行目のコマンド「LDQ (LOW R_KAK_HOT),A」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_KAK_HOT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレス(潜伏中であることを示すフラグのアドレス)にAレジスタの値を格納する。 Then, the command "LDQ (LOW R_KAK_HOT), A" on the third line of Figure 175 (a) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_KAK_HOT" to the lower byte of the address, and stores the value of the A register in that address (the address of the flag indicating that it is in hiding).

ここで、図175(a)のコマンド群を図175(b)のように変更することができる。ここでは、図175(a)と実質的に等しい処理についてはその説明を省略し、図175(b)の異なる処理のみを説明する。 The commands in FIG. 175(a) can be changed to those in FIG. 175(b). Here, we will omit the explanation of the processes that are essentially the same as those in FIG. 175(a), and only explain the different processes in FIG. 175(b).

図175(b)の2行目のコマンド「LDQ (LOW R_KAK_HOT),(LOW R_KAK_FLG)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_KAK_FLG」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値を、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_KAK_HOT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納する。 The command "LDQ (LOW R_KAK_HOT), (LOW R_KAK_FLG)" on the second line of Figure 175 (b) sets the value of the Q register to the most significant byte of the address, the value of the least significant byte of the address "R_KAK_FLG" to the least significant byte of the address, and the value stored at that address is stored at that address, with the value of the Q register as the most significant byte of the address and the value of the least significant byte of the address "R_KAK_HOT" as the least significant byte of the address.

ここで、図175(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_KAK_FLG)」2バイト+3行目コマンド「LDQ (LOW R_KAK_HOT),A」2バイト=4バイトとなり、総実行サイクルは、2行目3サイクル+3行目3サイクル=6サイクルとなる。 The total command size of the command group shown in FIG. 175(a) is 2 bytes of the command "LDQ A, (LOW R_KAK_FLG)" on the second line + 2 bytes of the command "LDQ (LOW R_KAK_HOT), A" on the third line = 4 bytes, and the total execution cycles are 3 cycles on the second line + 3 cycles on the third line = 6 cycles.

一方、図175(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ (LOW R_KAK_HOT),(LOW R_KAK_FLG)」4バイト=4バイトとなり、総実行サイクルは、2行目6サイクル=6サイクルとなる。 On the other hand, the total command size of the command group shown in FIG. 175(b) is the command "LDQ (LOW R_KAK_HOT), (LOW R_KAK_FLG)" on the second line, which is 4 bytes = 4 bytes, and the total execution cycles are 6 cycles on the second line = 6 cycles.

したがって、図175(a)と図175(b)とを比較して理解できるように、図175(a)において2行(2行目~3行目)を占有していたコマンド群を、図175(b)においては1行(2行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 As can be seen by comparing Figures 175(a) and 175(b), a group of commands that occupy two lines (lines 2 and 3) in Figure 175(a) can be represented in one line (line 2) in Figure 175(b), making it possible to reduce the number of commands and lighten the design load.

また、図175(b)の例では、Aレジスタを利用していない。したがって、Aレジスタの値を意図せず更新してしまうことはない。また、図175(a)の例では、Aレジスタが既に利用されている場合、スタックしてAレジスタの値を退避する必要があったが、ここでは、Aレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 In addition, in the example of FIG. 175(b), the A register is not used. Therefore, the value of the A register will not be updated unintentionally. Also, in the example of FIG. 175(a), if the A register was already in use, it was necessary to save the value of the A register by stacking, but here, since the A register is not used, stack processing is not required. In this way, resources can be used efficiently.

図176は、EXE_SETモジュールを実現するためのコマンドの一例を説明するための説明図である。図176に示したEXE_SETモジュールは、図91におけるステップS2400-11に示した実行フラグ設定処理を実行する。 Figure 176 is an explanatory diagram for explaining an example of a command for implementing the EXE_SET module. The EXE_SET module shown in Figure 176 executes the execution flag setting process shown in step S2400-11 in Figure 91.

図176(a)の1行目の指標「EXE_SET:」は、当該EXE_SETモジュールの先頭アドレスを示す。そして、図176(a)の2行目のコマンド「LDQ A,(LOW AT_NXT)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「AT_NXT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレス(次遊技の演出状態を示す値のアドレス)に格納された値(次遊技の演出状態を示す値)をAレジスタに読み出す。 The index "EXE_SET:" on the first line of FIG. 176(a) indicates the starting address of the EXE_SET module. The command "LDQ A, (LOW AT_NXT)" on the second line of FIG. 176(a) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "AT_NXT" to the lower byte of the address, and reads the value (the value indicating the presentation state of the next game) stored at that address (the address of the value indicating the presentation state of the next game) into the A register.

そして、図176(a)の3行目のコマンド「LDQ (LOW AT_MOD),A」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「AT_MOD」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレス(当該遊技の演出状態を示す値のアドレス)にAレジスタの値を格納する。 Then, the command "LDQ (LOW AT_MOD), A" on the third line of Figure 176 (a) makes the value of the Q register the most significant byte of the address, the value of the least significant byte of the address "AT_MOD" the most significant byte of the address, and stores the value of the A register in that address (the address of the value indicating the presentation status of the game).

ここで、図176(a)のコマンド群を図176(b)のように変更することができる。ここでは、図176(a)と実質的に等しい処理についてはその説明を省略し、図176(b)の異なる処理のみを説明する。 The command group in FIG. 176(a) can be changed to that in FIG. 176(b). Here, we will omit the explanation of the processing that is essentially the same as in FIG. 176(a), and only explain the different processing in FIG. 176(b).

図176(b)の2行目のコマンド「LDQ (LOW AT_MOD),(LOW AT_NXT)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「AT_NXT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値を、Qレジスタの値をアドレスの上位1バイトとし、アドレス「AT_MOD」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納する。 The command "LDQ (LOW AT_MOD), (LOW AT_NXT)" on the second line of Figure 176 (b) sets the value of the Q register to the most significant byte of the address, the value of the least significant byte of the address "AT_NXT" to the least significant byte of the address, and the value stored at that address is stored at that address, with the value of the Q register set to the most significant byte of the address and the value of the least significant byte of the address "AT_MOD" set to the least significant byte of the address.

ここで、図176(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW AT_NXT)」2バイト+3行目コマンド「LDQ (LOW AT_MOD),A」2バイト=4バイトとなり、総実行サイクルは、2行目3サイクル+3行目3サイクル=6サイクルとなる。 The total command size of the command group shown in FIG. 176(a) is 2 bytes for the command "LDQ A, (LOW AT_NXT)" on the second line + 2 bytes for the command "LDQ (LOW AT_MOD), A" on the third line = 4 bytes, and the total execution cycles are 3 cycles on the second line + 3 cycles on the third line = 6 cycles.

一方、図176(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ (LOW AT_MOD),(LOW AT_NXT)」4バイト=4バイトとなり、総実行サイクルは、2行目6サイクル=6サイクルとなる。 On the other hand, the total command size of the command group shown in FIG. 176(b) is the command "LDQ (LOW AT_MOD), (LOW AT_NXT)" on the second line, which is 4 bytes = 4 bytes, and the total execution cycles are 6 cycles on the second line = 6 cycles.

したがって、図176(a)と図176(b)とを比較して理解できるように、図176(a)において2行(2行目~3行目)を占有していたコマンド群を、図176(b)においては1行(2行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 As can be seen by comparing Figures 176(a) and 176(b), a group of commands that occupy two lines (lines 2 and 3) in Figure 176(a) can be represented in one line (line 2) in Figure 176(b), making it possible to reduce the number of commands and lighten the design load.

また、図176(b)の例では、Aレジスタを利用していない。したがって、Aレジスタの値を意図せず更新してしまうことはない。また、図176(a)の例では、Aレジスタが既に利用されている場合、スタックしてAレジスタの値を退避する必要があったが、ここでは、Aレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 In addition, in the example of FIG. 176(b), the A register is not used. Therefore, the value of the A register will not be updated unintentionally. Also, in the example of FIG. 176(a), if the A register was already in use, it was necessary to save the value of the A register by stacking, but here, since the A register is not used, stack processing is not necessary. In this way, resources can be used efficiently.

<LDIN>
図177は、HPT_GRPモジュールの具体的な処理を示したフローチャートである。HPT_GRPモジュールは、上記特別図柄変動番号決定処理(図39参照)におけるステップS612-7のリーチグループ決定処理を実行する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。また、当該HPT_GRPモジュールの説明中、第1レジスタはHLレジスタであり、他のレジスタはBCレジスタまたはAレジスタである。
<LDIN>
FIG. 177 is a flow chart showing the specific processing of the HPT_GRP module. The HPT_GRP module executes the reach group determination processing of step S612-7 in the special symbol variable number determination processing (see FIG. 39). The numerical values of step S in this figure are used only in the explanation of this figure. In addition, in the explanation of the HPT_GRP module, the first register is the HL register, and the other registers are the BC register or the A register.

リーチグループ決定処理では、保留種別、保留数、遊技状態等に応じて、予め決定されたリーチグループ決定乱数判定テーブルのアドレスが、HLレジスタに事前に格納されている。 In the reach group determination process, the address of a reach group determination random number judgment table that is predetermined according to the reserved type, reserved number, game status, etc. is pre-stored in the HL register.

メインCPU300aは、図177のように、HLレジスタに示されるアドレス(テーブルアドレス)に格納された比較値をBCレジスタにロードし、HLレジスタの値を2加算する(S1)。なお、詳しくは後述するように、リーチグループ決定乱数判定テーブルは、2バイト長の比較値と、1バイト長のグループ番号とが1セットとして、これら1セットが複数順に連続して格納されている。したがって、ここでは、比較値をロードした後にHLレジスタの値を2加算することで、HLレジスタは、ロードした比較値の次に格納されたグループ番号が格納されたアドレス値となる。 As shown in FIG. 177, the main CPU 300a loads the comparison value stored in the address (table address) indicated in the HL register into the BC register and adds 2 to the value of the HL register (S1). As will be described in more detail later, the reach group determination random number judgment table stores multiple sets of a 2-byte comparison value and a 1-byte group number in succession in order. Therefore, in this case, by adding 2 to the value of the HL register after loading the comparison value, the HL register becomes the address value where the group number stored next to the loaded comparison value is stored.

その後、メインCPU300aは、BCレジスタにロードした比較値と、DEレジスタに事前にロードされたリーチグループ決定乱数(乱数値)とを比較し(S2)、HLレジスタに示されるアドレスに格納されたリーチグループ番号をロードする(S3)。 Then, the main CPU 300a compares the comparison value loaded into the BC register with the reach group determination random number (random number value) previously loaded into the DE register (S2), and loads the reach group number stored at the address indicated in the HL register (S3).

その後、メインCPU300aは、HLレジスタの値(テーブルアドレス)を1加算する(S4)。ここでは、グループ番号をロードした後にHLレジスタの値を1加算することで、HLレジスタは、ロードしたグループ番号の次に格納された比較値が格納されたアドレス値となる。 Then, the main CPU 300a adds 1 to the value (table address) of the HL register (S4). Here, by adding 1 to the value of the HL register after loading the group number, the HL register becomes the address value where the comparison value stored next to the loaded group number is stored.

そして、メインCPU300aは、上記ステップS2の比較結果として、比較値がリーチグループ決定乱数(乱数値)以下であれば(S5におけるYES)、上記ステップS1に処理を戻し、比較値がリーチグループ決定乱数以下でなければ(S5におけるNO)、当該HPT_GRPモジュールを終了する(S6)。 Then, if the comparison value in step S2 is equal to or less than the reach group determination random number (random value) (YES in S5), the main CPU 300a returns the process to step S1, and if the comparison value is not equal to or less than the reach group determination random number (NO in S5), the main CPU 300a terminates the HPT_GRP module (S6).

図178(a)、(b)は、HPT_GRPモジュールを実現するためのコマンドの一例を説明するための説明図である。図178(c)は、リーチグループ決定乱数判定テーブルの一例を説明するための説明図である。図177で示したフローチャートは、例えば、図178(a)、(b)に示したプログラムによって実現される。まず、図178(c)のリーチグループ決定乱数判定テーブルを説明した後に、図178(a)、(b)に示すHPT_GRPモジュールを実現するためのコマンドを説明する。 Figures 178(a) and (b) are explanatory diagrams for explaining an example of commands for realizing the HPT_GRP module. Figure 178(c) is an explanatory diagram for explaining an example of a reach group determination random number judgment table. The flowchart shown in Figure 177 is realized, for example, by the program shown in Figures 178(a) and (b). First, the reach group determination random number judgment table in Figure 178(c) will be explained, and then the commands for realizing the HPT_GRP module shown in Figures 178(a) and (b) will be explained.

図178(c)における指標「D_GRP_SEL_00:」を起点としたテーブルは、いずれかのリーチグループ決定乱数判定テーブルの先頭アドレスを示す。そして、2行目の固定値「8999」、4行目の固定値「9099」、6行目の固定値「9299」は、それぞれ2バイト長の比較値であり、3行目の固定値「@D_MOD_SEL_00」、5行目の固定値「@D_MOD_SEL_01」、7行目の固定値「@D_MOD_SEL_02」は、それぞれ1バイト長のグループ番号である。そして、リーチグループ決定乱数判定テーブルでは、2バイト長の比較値、当該比較値に対応する1バイト長のグループ番号が1セットとなって連続して順に格納されている。 The table starting from the index "D_GRP_SEL_00:" in Figure 178 (c) indicates the top address of one of the reach group determination random number judgment tables. The fixed value "8999" in the second line, the fixed value "9099" in the fourth line, and the fixed value "9299" in the sixth line are each two-byte comparison values, while the fixed value "@D_MOD_SEL_00" in the third line, the fixed value "@D_MOD_SEL_01" in the fifth line, and the fixed value "@D_MOD_SEL_02" in the seventh line are each one-byte group numbers. In the reach group determination random number judgment table, a two-byte comparison value and a one-byte group number corresponding to that comparison value form a set and are stored consecutively in order.

図178(a)の1行目の指標「HPT_GRP:」は、当該HPT_GRPモジュールの先頭アドレスを示す。そして、図178(a)の2行目のコマンド「LDIN BC,(HL)」によって、HLレジスタで示されるアドレスに格納された2バイト長の値(比較値)をBCレジスタに読み出し(ロードし)、HLレジスタの値を2加算する。かかる2行目のコマンドが、図177のステップS1に対応する。なお、HLレジスタには、事前に、予め決定されたリーチグループ決定乱数判定テーブルのアドレスがロードされている。 The index "HPT_GRP:" on the first line of Figure 178(a) indicates the starting address of the HPT_GRP module. The command "LDIN BC, (HL)" on the second line of Figure 178(a) reads (loads) a 2-byte value (comparison value) stored at the address indicated by the HL register into the BC register, and adds 2 to the value of the HL register. This command on the second line corresponds to step S1 in Figure 177. Note that the address of a predetermined reach group determination random number judgment table is loaded into the HL register in advance.

そして、図178(a)の3行目のコマンド「CP BC,DE」によって、BCレジスタに格納された値(比較値)と、DEレジスタに格納された値(リーチグループ決定乱数)とを比較する。ここで、BCレジスタに格納された値が、DEレジスタに格納された値以下であれば、ゼロフラグ(等しい場合)またはキャリーフラグ(未満の場合)に1が立つことになる。なお、DEレジスタには、事前に、リーチグループ決定乱数が格納されている。かかる3行目のコマンドが、図177のステップS2に対応する。 Then, the command "CP BC,DE" on the third line of Figure 178(a) compares the value stored in the BC register (comparison value) with the value stored in the DE register (reach group determination random number). If the value stored in the BC register is less than or equal to the value stored in the DE register, the zero flag (if equal) or the carry flag (if less than) will be set to 1. Note that the DE register has previously stored the reach group determination random number. This command on the third line corresponds to step S2 in Figure 177.

その後、図178(a)の4行目のコマンド「LD A,(HL)」によって、HLレジスタで示されるアドレスに格納された1バイト長の値(グループ番号)をAレジスタに読み出す。かかる4行目のコマンドが、図177のステップS3に対応する。そして、図178(a)の5行目のコマンド「INC HL」によって、HLレジスタの値を1加算する。かかる5行目のコマンドが、図177のステップS4に対応する。 After that, the command "LD A, (HL)" on the fourth line of Fig. 178(a) reads a 1-byte value (group number) stored at the address indicated by the HL register into the A register. This command on the fourth line corresponds to step S3 in Fig. 177. Then, the command "INC HL" on the fifth line of Fig. 178(a) adds 1 to the value of the HL register. This command on the fifth line corresponds to step S4 in Fig. 177.

続いて、図178(a)の6行目のコマンド「JLS HPT_GRP」によって、3行目のコマンド「CP BC,DE」によってゼロフラグまたはキャリーフラグに1が立っていた場合、「HPT_GRP」が示すアドレスに移動し、ゼロフラグおよびキャリーフラグに1が立っていなかった場合、図178(a)の7行目のコマンド「RET」によって、当該HPT_GRPモジュールが終了する。かかる6行目、7行目のコマンドが、図177のステップS5、S6に対応する。そして、HPT_GRPモジュールが終了した際には、図9に示す範囲に応じたグループ番号がAレジスタに格納されることになる。 Next, if the zero flag or carry flag is set to 1 by the command "CP BC,DE" on line 3, the command "JLS HPT_GRP" on line 6 of Fig. 178(a) moves to the address indicated by "HPT_GRP", and if the zero flag and carry flag are not set to 1, the command "RET" on line 7 of Fig. 178(a) terminates the HPT_GRP module. These commands on lines 6 and 7 correspond to steps S5 and S6 of Fig. 177. Then, when the HPT_GRP module is terminated, the group number corresponding to the range shown in Fig. 9 is stored in the A register.

ここで、図178(a)のコマンド群を図178(b)のように変更することができる。ここでは、図178(a)と実質的に等しい処理についてはその説明を省略し、図178(b)の異なる処理のみを説明する。 The commands in FIG. 178(a) can be changed to those in FIG. 178(b). Here, we will omit the explanation of the processes that are essentially the same as those in FIG. 178(a), and only explain the different processes in FIG. 178(b).

図178(b)の4行目のコマンド「LDIN A,(HL)」によって、HLレジスタで示されるアドレスに格納された1バイト長の値(グループ番号)をAレジスタに読み出し、HLレジスタの値を1加算する。かかる4行目のコマンドが、図177のステップS3、S4に対応する。かかるコマンドのコマンドサイズは「1」であり、実行サイクルは「2」である。 The command "LDIN A, (HL)" on the fourth line of Fig. 178(b) reads a one-byte value (group number) stored at the address indicated by the HL register into the A register, and increments the value of the HL register by one. This command on the fourth line corresponds to steps S3 and S4 in Fig. 177. The command size of this command is "1", and the execution cycle is "2".

ここで、図178(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDIN BC,(HL)」2バイト+3行目コマンド「CP BC,DE」2バイト+4行目のコマンド「LD A,(HL)」1バイト+5行目のコマンド「INC HL」1バイト+6行目のコマンド「JLS HPT_GRP」3バイト+7行目のコマンド「RET」1バイト=10バイトとなり、総実行サイクルは、2行目4サイクル+3行目2サイクル+4行目2サイクル+5行目1サイクル+6行目4(3)サイクル+7行目3サイクル=16(15)サイクルとなる。なお、括弧内のサイクル数は、コマンド「JLS HPT_GRP」によって移動しなかった場合の実行サイクルを示している。 The total command size of the command group shown in FIG. 178(a) is 2 bytes of the command "LDIN BC, (HL)" on the second line + 2 bytes of the command "CP BC, DE" on the third line + 1 byte of the command "LD A, (HL)" on the fourth line + 1 byte of the command "INC HL" on the fifth line + 3 bytes of the command "JLS HPT_GRP" on the sixth line + 1 byte of the command "RET" on the seventh line = 10 bytes, and the total execution cycles are 4 cycles on the second line + 2 cycles on the third line + 2 cycles on the fourth line + 1 cycle on the fifth line + 4 (3) cycles on the sixth line + 3 cycles on the seventh line = 16 (15) cycles. The number of cycles in parentheses indicates the execution cycles when there is no movement due to the command "JLS HPT_GRP".

一方、図178(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDIN BC,(HL)」2バイト+3行目コマンド「CP BC,DE」2バイト+4行目のコマンド「LDIN A,(HL)」1バイト+5行目のコマンド「JLS HPT_GRP」3バイト+6行目のコマンド「RET」1バイト=9バイトとなり、総実行サイクルは、2行目4サイクル+3行目2サイクル+4行目2サイクル+5行目4(3)サイクル+6行目3サイクル=15(14)サイクルとなる。なお、括弧内のサイクル数は、コマンド「JLS HPT_GRP」によって移動しなかった場合の実行サイクルを示している。 On the other hand, the total command size of the command group shown in FIG. 178(b) is 2 bytes of the command "LDIN BC, (HL)" on line 2 + 2 bytes of the command "CP BC, DE" on line 3 + 1 byte of the command "LDIN A, (HL)" on line 4 + 3 bytes of the command "JLS HPT_GRP" on line 5 + 1 byte of the command "RET" on line 6 = 9 bytes, and the total execution cycles are 4 cycles on line 2 + 2 cycles on line 3 + 2 cycles on line 4 + 4(3) cycles on line 5 + 3 cycles on line 6 = 15(14) cycles. Note that the number of cycles in parentheses indicates the execution cycles if there is no movement due to the command "JLS HPT_GRP".

したがって、図178(a)のコマンド群を図178(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減され、総実行サイクルも少なくとも1サイクル削減される。かかる置き換えによって、コマンドの短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Therefore, by replacing the command group in FIG. 178(a) with the command group in FIG. 178(b), the total command size is reduced by 1 byte, and the total execution cycle is also reduced by at least 1 cycle. This replacement shortens the commands and reduces the processing load, making it possible to secure the capacity of the control area for performing game control processing.

また、図178(a)と図178(b)とを比較して理解できるように、図178(a)において2行(4行目~5行目)を占有していたコマンド群を、図178(b)においては1行(4行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 178(a) and 178(b), the command group that occupies two lines (lines 4 and 5) in Figure 178(a) can be represented in one line (line 4) in Figure 178(b), making it possible to reduce the number of commands and lighten the design load.

また、図178(b)の例では、バイト長が異なる複数の値が交互に並置したテーブル中の所望する2バイト長の値または1バイト長の値を取得する際に、HLレジスタの値に2加算および1加算を同一のコマンド「LDIN」で実行することができ、設計負荷の軽減を図ることが可能となる。 In addition, in the example of FIG. 178(b), when obtaining a desired 2-byte or 1-byte value from a table in which multiple values of different byte lengths are arranged alternately, it is possible to add 2 and 1 to the value of the HL register using the same command "LDIN," thereby making it possible to reduce the design load.

図179は、E_ILGERモジュールを説明するための説明図である。図179に示したE_ILGERモジュールは、図98におけるステップS3100-19に示した不正監視処理を実行する。 Figure 179 is an explanatory diagram for explaining the E_ILGER module. The E_ILGER module shown in Figure 179 executes the fraud monitoring process shown in step S3100-19 in Figure 98.

図179(a)の1行目の指標「E_ILGER:」は、当該E_ILGERモジュールの先頭アドレスを示す。2行目のコマンド「LD HL,_EX_ILTM」によって、不正投入監視タイマを格納するアドレス「EX_ILTM」をHLレジスタに読み出す。 The index "E_ILGER:" on the first line of FIG. 179(a) indicates the starting address of the E_ILGER module. The command "LD HL, _EX_ILTM" on the second line reads the address "EX_ILTM" that stores the unauthorized entry monitoring timer into the HL register.

その後、図179(a)の3行目のコマンド「LD A,(HL)」によって、HLレジスタで示されるアドレスに格納された1バイト長の値(不正投入監視タイマ)をAレジスタに読み出す。そして、図179(a)の4行目のコマンド「INC HL」によって、HLレジスタの値を1加算する。続いて、図179(a)の5行目のコマンド「JT Z,A,E_ILGER01」によって、Aレジスタの値が0である場合(不正投入監視タイマが0である場合)、以降の処理を省略して6行目の指標「E_ILGER01:」に移動し、Aレジスタの値が0でない場合、当該コマンドの次のコマンドに処理を移す。 After that, the command "LD A, (HL)" on the third line of Fig. 179(a) reads a 1-byte value (unauthorized insertion monitoring timer) stored at the address indicated by the HL register into the A register. Then, the command "INC HL" on the fourth line of Fig. 179(a) adds 1 to the value of the HL register. Next, the command "JT Z, A, E_ILGER01" on the fifth line of Fig. 179(a) skips subsequent processing and moves to the index "E_ILGER01:" on the sixth line, and if the value of the A register is not 0, moves to the next command after that command.

ここで、図179(a)のコマンド群を図179(b)のように変更することができる。ここでは、図179(a)と実質的に等しい処理についてはその説明を省略し、図179(b)の異なる処理のみを説明する。 The commands in FIG. 179(a) can be changed to those in FIG. 179(b). Here, we will omit the explanation of the processes that are essentially the same as those in FIG. 179(a), and only explain the different processes in FIG. 179(b).

図179(b)の3行目のコマンド「LDIN A,(HL)」によって、HLレジスタで示されるアドレスに格納された1バイト長の値(不正投入監視タイマ)をAレジスタに読み出し、HLレジスタの値を1加算する。かかるコマンドのコマンドサイズは「1」であり、実行サイクルは「2」である。 The command "LDIN A, (HL)" on the third line of Figure 179 (b) reads a 1-byte value (unauthorized input monitoring timer) stored at the address indicated by the HL register into the A register, and adds 1 to the value of the HL register. The command size of this command is "1", and the execution cycle is "2".

ここで、図179(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LD HL,_EX_ILTM」3バイト+3行目のコマンド「LD A,(HL)」1バイト+4行目のコマンド「INC HL」1バイト+5行目のコマンド「JT Z,A,E_ILGER01」2バイト=7バイトとなり、総実行サイクルは、2行目3サイクル+3行目2サイクル+4行目1サイクル+5行目3(2)サイクル=9(8)サイクルとなる。なお、括弧内のサイクル数は、コマンド「JT Z,A,E_ILGER01」によって移動しなかった場合の実行サイクルを示している。 The total command size of the command group shown in FIG. 179(a) is 3 bytes of the command "LD HL,_EX_ILTM" on line 2 + 1 byte of the command "LD A,(HL)" on line 3 + 1 byte of the command "INC HL" on line 4 + 2 bytes of the command "JT Z,A,E_ILGER01" on line 5 = 7 bytes, and the total execution cycles are 3 cycles on line 2 + 2 cycles on line 3 + 1 cycle on line 4 + 3(2) cycles on line 5 = 9(8) cycles. Note that the number of cycles in parentheses indicates the execution cycles if there is no movement due to the command "JT Z,A,E_ILGER01".

一方、図179(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LD HL,_EX_ILTM」3バイト+3行目のコマンド「LDIN A,(HL)」1バイト+4行目のコマンド「JT Z,A,E_ILGER01」2バイト=6バイトとなり、総実行サイクルは、2行目3サイクル+3行目2サイクル+4行目3(2)サイクル=8(7)サイクルとなる。なお、括弧内のサイクル数は、コマンド「JT Z,A,E_ILGER01」によって移動しなかった場合の実行サイクルを示している。 On the other hand, the total command size of the command group shown in FIG. 179(b) is 3 bytes of the command "LD HL,_EX_ILTM" on the second line + 1 byte of the command "LDIN A,(HL)" on the third line + 2 bytes of the command "JT Z,A,E_ILGER01" on the fourth line = 6 bytes, and the total execution cycles are 3 cycles on the second line + 2 cycles on the third line + 3(2) cycles on the fourth line = 8(7) cycles. Note that the number of cycles in parentheses indicates the execution cycles if no movement was made by the command "JT Z,A,E_ILGER01".

したがって、図179(a)のコマンド群を図179(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減され、総実行サイクルも少なくとも1サイクル削減される。かかる置き換えによって、コマンドの短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Therefore, by replacing the command group in FIG. 179(a) with the command group in FIG. 179(b), the total command size is reduced by 1 byte, and the total execution cycle is also reduced by at least 1 cycle. This replacement shortens the commands and reduces the processing load, making it possible to secure the capacity of the control area for performing game control processing.

また、図179(a)と図179(b)とを比較して理解できるように、図179(a)において2行(3行目~4行目)を占有していたコマンド群を、図179(b)においては1行(3行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 179(a) and 179(b), the command group that occupies two lines (lines 3 and 4) in Figure 179(a) can be represented in one line (line 3) in Figure 179(b), making it possible to reduce the number of commands and lighten the design load.

図180は、E_LEVOTモジュールを説明するための説明図である。図180に示したE_LEVOTモジュールは、図91におけるステップS2400-11に示した実行フラグ設定処理において呼び出されるサブルーチンであり、レバー押下時試験信号送信処理を実行する。 Figure 180 is an explanatory diagram for explaining the E_LEVOT module. The E_LEVOT module shown in Figure 180 is a subroutine that is called in the execution flag setting process shown in step S2400-11 in Figure 91, and executes the test signal transmission process when the lever is pressed.

図180(a)の1行目の指標「E_LEVOT:」は、当該E_LEVOTモジュールの先頭アドレスを示す。2行目のコマンド「LD HL,T_EXM_STP」によって、試験用停止情報送信テーブルを格納するアドレス「T_EXM_STP」をHLレジスタに読み出す。この試験用停止情報送信テーブルには、1バイト長の6つの試験信号の値が1セットとして連続して格納されているとともに、複数セットが連続して格納されている。 The index "E_LEVOT:" on the first line of Figure 180(a) indicates the starting address of the E_LEVOT module. The command "LD HL, T_EXM_STP" on the second line reads the address "T_EXM_STP" that stores the test stop information transmission table into the HL register. In this test stop information transmission table, six test signal values, each 1 byte long, are stored consecutively as one set, and multiple sets are stored consecutively.

その後、図180(a)の3行目のコマンド「ADDWB HL,A」によって、HLレジスタの値にAレジスタの値が加算され、HLレジスタの値が更新される。なお、Aレジスタには、指示情報種別に6を乗算した値が格納されている。したがって、ここでは、HLレジスタの値が、試験用停止情報送信テーブルにおいて、指示情報種別に対応する1セットの先頭アドレスを示すこととなる。 Then, the command "ADDWB HL,A" on the third line of Figure 180(a) adds the value of the A register to the value of the HL register, updating the value of the HL register. Note that the A register stores a value obtained by multiplying the instruction information type by 6. Therefore, in this case, the value of the HL register indicates the first address of a set corresponding to the instruction information type in the test stop information transmission table.

そして、4行目のコマンド「LD B,6」によって、固定値「6」がBレジスタに読み出される。図180(a)の5行目の指標「E_LEVOT01:」は、指標「E_LEVOT01」のアドレスを示す。 Then, the command "LD B,6" on the fourth line reads the fixed value "6" into the B register. The index "E_LEVOT01:" on the fifth line of Figure 180(a) indicates the address of the index "E_LEVOT01".

図180(a)の6行目のコマンド「LD A,(HL)」によって、HLレジスタで示されるアドレスに格納された1バイト長の値(試験信号の値)をAレジスタに読み出す。そして、図180(a)の7行目のコマンド「OUT (@S2DT__),A」によって、Uレジスタの値をアドレスの上位1バイトとし、RAMアクセスプロテクトレジスタポート(内部レジスタI/Oポート)のアドレスの下位1バイトを示す固定値「@S2DT__」を下位1バイトとし、そのアドレスに、Aレジスタの値を出力する。 The command "LD A, (HL)" on the sixth line of Fig. 180(a) reads a one-byte value (the value of the test signal) stored at the address indicated by the HL register into the A register. Then, the command "OUT (@S2DT___), A" on the seventh line of Fig. 180(a) sets the value of the U register to the upper byte of the address, sets the fixed value "@S2DT___" indicating the lower byte of the address of the RAM access protect register port (internal register I/O port) to the lower byte, and outputs the value of the A register to that address.

図180(a)の8行目のコマンド「INC HL」によって、HLレジスタの値を1加算する。続いて、図180(a)の9行目のコマンド「DJNZ E_LEVOT01」によって、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0でなければ、アドレス「E_LEVOT01」に移動し、デクリメントした結果が0であれば、当該コマンドの次のコマンドに処理を移す。 The command "INC HL" on line 8 of Fig. 180(a) adds 1 to the value of the HL register. Next, the command "DJNZ E_LEVOT01" on line 9 of Fig. 180(a) decrements the value of the B register (subtracts "1"), and if the result of the decrement is not 0, it moves to address "E_LEVOT01", and if the result of the decrement is 0, it moves to the next command after that command.

ここで、図180(a)のコマンド群を図180(b)のように変更することができる。ここでは、図180(a)と実質的に等しい処理についてはその説明を省略し、図180(b)の異なる処理のみを説明する。 The commands in FIG. 180(a) can be changed to those in FIG. 180(b). Here, we will omit the explanation of the processes that are essentially the same as those in FIG. 180(a), and only explain the different processes in FIG. 180(b).

図180(b)の6行目のコマンド「LDIN A,(HL)」によって、HLレジスタで示されるアドレスに格納された1バイト長の値(試験信号の値)をAレジスタに読み出し、HLレジスタの値を1加算する。かかるコマンドのコマンドサイズは「1」であり、実行サイクルは「2」である。 The command "LDIN A, (HL)" on line 6 of Figure 180(b) reads a 1-byte value (the value of the test signal) stored at the address indicated by the HL register into the A register, and adds 1 to the value of the HL register. The command size of this command is "1", and the execution cycle is "2".

ここで、図180(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LD HL,T_EXM_STP」3バイト+3行目のコマンド「ADDWB HL,A」1バイト+4行目のコマンド「LD B,6」2バイト+6行目のコマンド「LD A,(HL)」1バイト+7行目のコマンド「OUT (@S2DT__),A」2バイト+8行目のコマンド「INC HL」1バイト+9行目のコマンド「DJNZ E_LEVOT01」2バイト=12バイトとなり、総実行サイクルは、2行目3サイクル+3行目1サイクル+4行目2サイクル+6行目2サイクル+7行目3サイクル+8行目1サイクル+9行目3(2)サイクル=15(14)サイクルとなる。なお、括弧内のサイクル数は、コマンド「DJNZ E_LEVOT01」によって移動しなかった場合の実行サイクルを示している。 Here, the total command size of the command group shown in FIG. 180(a) is 3 bytes of the command "LD HL,T_EXM_STP" on line 2 + 1 byte of the command "ADDWB HL,A" on line 3 + 2 bytes of the command "LD B,6" on line 4 + 1 byte of the command "LD A,(HL)" on line 6 + 2 bytes of the command "OUT (@S2DT__),A" on line 7 + 1 byte of the command "INC HL" on line 8 + 2 bytes of the command "DJNZ E_LEVOT01" on line 9 = 12 bytes, and the total execution cycles are 3 cycles on line 2 + 1 cycle on line 3 + 2 cycles on line 4 + 2 cycles on line 6 + 3 cycles on line 7 + 1 cycle on line 8 + 3(2) cycles on line 9 = 15(14) cycles. Note that the number of cycles in parentheses indicates the execution cycles if no movement is made using the command "DJNZ E_LEVOT01".

一方、図180(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LD HL,T_EXM_STP」3バイト+3行目のコマンド「ADDWB HL,A」1バイト+4行目のコマンド「LD B,6」2バイト+6行目のコマンド「LDIN A,(HL)」1バイト+7行目のコマンド「OUT (@S2DT__),A」2バイト+5行目のコマンド「DJNZ E_LEVOT01」2バイト=11バイトとなり、総実行サイクルは、2行目3サイクル+3行目1サイクル+4行目2サイクル+6行目2サイクル+7行目3サイクル+9行目3(2)サイクル=14(13)サイクルとなる。なお、括弧内のサイクル数は、コマンド「DJNZ E_LEVOT01」によって移動しなかった場合の実行サイクルを示している。 On the other hand, the total command size of the command group shown in FIG. 180(b) is 3 bytes of the command "LD HL,T_EXM_STP" on line 2 + 1 byte of the command "ADDWB HL,A" on line 3 + 2 bytes of the command "LD B,6" on line 4 + 1 byte of the command "LDIN A,(HL)" on line 6 + 2 bytes of the command "OUT (@S2DT__),A" on line 7 + 2 bytes of the command "DJNZ E_LEVOT01" on line 5 = 11 bytes, and the total execution cycles are 3 cycles on line 2 + 1 cycle on line 3 + 2 cycles on line 4 + 2 cycles on line 6 + 3 cycles on line 7 + 3(2) cycles on line 9 = 14(13) cycles. Note that the number of cycles in parentheses indicates the execution cycles when there is no movement due to the command "DJNZ E_LEVOT01".

したがって、図180(a)のコマンド群を図180(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減され、総実行サイクルも少なくとも1サイクル削減される。特に、図180(a)の例では、コマンド「DJNZ E_LEVOT01」におけるBレジスタの値が2以上であれば、その値に1サイクルを乗じた分だけ総実行サイクルの差分が増えるので、図180(b)の総実行サイクルの削減量も多くなる。かかる置き換えによって、コマンドの短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Therefore, by replacing the commands in FIG. 180(a) with those in FIG. 180(b), the total command size is reduced by 1 byte, and the total execution cycles are also reduced by at least 1 cycle. In particular, in the example of FIG. 180(a), if the value of the B register in the command "DJNZ E_LEVOT01" is 2 or greater, the difference in the total execution cycles increases by multiplying that value by 1 cycle, so the reduction in the total execution cycles in FIG. 180(b) also increases. This replacement shortens the commands and reduces the processing load, making it possible to secure the capacity of the control area for performing game control processing.

また、図180(a)と図180(b)とを比較して理解できるように、図180(a)において2行(6行目、8行目)を占有していたコマンド群を、図180(b)においては1行(6行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 180(a) and 180(b), the command group that occupies two lines (lines 6 and 8) in Figure 180(a) can be represented by one line (line 6) in Figure 180(b), making it possible to reduce the number of commands and lighten the design load.

<LDQP>
図181は、SBC_OUTモジュールの具体的な処理を示したフローチャートである。SBC_OUTモジュールは、上記ステップS100-65のサブコマンド送信処理(図23参照)を実行する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。
<LDQP>
181 is a flow chart showing the specific processing of the SBC_OUT module. The SBC_OUT module executes the subcommand transmission processing of step S100-65 (see FIG. 23). The numerical values of step S in this figure are used only in the explanation of this figure.

ここで、サブコマンドは、割込み処理における複数の処理において送信バッファにセットされ、サブコマンド送信処理で送信される。ここで、送信バッファは、例えば96バイトのリングバッファであり、複数の処理においてサブコマンドが順にセットされ、サブコマンド送信処理において、先にセットされたサブコマンドから順に副制御基板330に送信されるFIFOである。 The subcommands are set in the transmission buffer in multiple processes in the interrupt process and are transmitted in the subcommand transmission process. The transmission buffer is, for example, a 96-byte ring buffer, and is a FIFO in which the subcommands are set in order in multiple processes and are transmitted to the sub-control board 330 in the subcommand transmission process, starting with the subcommand that was set first.

メインCPU300aは、図181のように、サブコマンドライトポインタの値をAレジスタに読み出し(S1)、サブコマンドライトポインタの値と、サブコマンドリードポインタの値とを比較する(S2)。ここで、サブコマンドライトポインタの値と、サブコマンドリードポインタの値とが同じ場合、すなわち、未送信のサブコマンドがない場合にはゼロフラグに1が立ち、異なる場合、すなわち、未送信のサブコマンドがある場合にはゼロフラグに1が立たない。 As shown in FIG. 181, the main CPU 300a reads the value of the subcommand write pointer into the A register (S1) and compares the value of the subcommand write pointer with the value of the subcommand read pointer (S2). Here, if the value of the subcommand write pointer and the value of the subcommand read pointer are the same, i.e., if there are no unsent subcommands, the zero flag is set to 1; if they are different, i.e., if there are unsent subcommands, the zero flag is not set to 1.

メインCPU300aは、ゼロフラグが1であれば(S3におけるYES)、当該SBC_OUTモジュールを終了し、ゼロフラグが1でなければ(S3におけるNO)、サブコマンドポインタ上限値、および、サブコマンドリードポインタのアドレスの下位バイトをDEレジスタにそれぞれ読み出し(S4)、汎用モジュールであるカウントアップ処理によって、サブコマンドリードポインタの値を、サブコマンドポインタ上限値未満なら1加算し、サブコマンドポインタ上限値以上ならゼロクリアする(S5)。 If the zero flag is 1 (YES in S3), the main CPU 300a terminates the SBC_OUT module; if the zero flag is not 1 (NO in S3), the main CPU 300a reads the subcommand pointer upper limit value and the lower byte of the address of the subcommand read pointer into the DE register (S4), and uses the count-up process, which is a general-purpose module, to add 1 to the value of the subcommand read pointer if it is less than the subcommand pointer upper limit value, or clear it to zero if it is equal to or greater than the subcommand pointer upper limit value (S5).

その後、メインCPU300aは、サブコマンドバッファ(送信バッファ)のアドレスをHLレジスタに読み出し(S6)、上記のワードデータ選択処理を実行した後(S7)、サブコマンドを送信するためのSCU1データレジスタに先行コマンドを出力し(S8)、後続コマンドをAレジスタに読み出し(S9)、SCU1データレジスタに後続コマンドを出力し(S10)、当該SBC_OUTモジュールを終了する(S11)。 Then, the main CPU 300a reads the address of the subcommand buffer (transmission buffer) into the HL register (S6), executes the above-mentioned word data selection process (S7), outputs the preceding command to the SCU1 data register for transmitting the subcommand (S8), reads the subsequent command into the A register (S9), outputs the subsequent command to the SCU1 data register (S10), and terminates the SBC_OUT module (S11).

図182は、SBC_OUTモジュールを実現するためのコマンドの一例を説明するための説明図である。 Figure 182 is an explanatory diagram illustrating an example of a command for implementing the SBC_OUT module.

図182(a)の1行目の指標「SBC_OUT:」は、当該SBC_OUTモジュールの先頭アドレスを示す。そして、図182(a)の2行目のコマンド「LDQ A,(LOW R_SBC_WPT)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_SBC_WPT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(サブコマンドライトポインタの値)をAレジスタに読み出す。かかる2行目のコマンドが、図181のステップS1に対応する。 The index "SBC_OUT:" on the first line of FIG. 182(a) indicates the starting address of the SBC_OUT module. The command "LDQ A, (LOW R_SBC_WPT)" on the second line of FIG. 182(a) sets the value of the Q register to the most significant byte of the address, sets the value of the least significant byte of the address "R_SBC_WPT" to the least significant byte of the address, and reads the value stored at that address (the value of the sub-command write pointer) into the A register. This command on the second line corresponds to step S1 in FIG. 181.

図182(a)の3行目のコマンド「CPQ A,(LOW R_SBC_RPT)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_SBC_RPT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(サブコマンドリードポインタの値)と、Aレジスタの値(サブコマンドライトポインタの値)とを比較する。ここで、同アドレスに格納された値と、Aレジスタの値とが一致していれば、ゼロフラグに1が立つ。かかる3行目のコマンドが、図181のステップS2に対応する。 The command "CPQ A, (LOW R_SBC_RPT)" on the third line of Figure 182 (a) sets the value of the Q register to the most significant byte of the address, sets the value of the least significant byte of the address "R_SBC_RPT" to the most significant byte of the address, and compares the value stored at that address (the value of the sub-command read pointer) with the value of the A register (the value of the sub-command write pointer). If the value stored at that address matches the value of the A register, the zero flag is set to 1. This command on the third line corresponds to step S2 in Figure 181.

図182(a)の4行目のコマンド「RET Z」によって、ゼロフラグに1が立っていれば、当該SBC_OUTモジュールを終了する。かかる4行目のコマンドが、図181のステップS3に対応する。 The command "RET Z" on the fourth line of FIG. 182(a) terminates the SBC_OUT module if the zero flag is set to 1. This command on the fourth line corresponds to step S3 in FIG. 181.

図182(a)の5行目のコマンド「LD DE,@LMT_CMD_BFP*256+LOW R_SBC_RPT」によって、サブコマンドポインタ上限値を示す固定値「@LMT_CMD_BFP」がDレジスタに読み出され、サブコマンドリードポインタのアドレスの下位バイトを示す「R_SBC_RPT」がEレジスタに読み出される。かかる5行目のコマンドが、図181のステップS4に対応する。 The command "LD DE, @LMT_CMD_BFP * 256 + LOW R_SBC_RPT" on the fifth line of Figure 182 (a) reads the fixed value "@LMT_CMD_BFP" indicating the upper limit value of the subcommand pointer into the D register, and reads "R_SBC_RPT" indicating the lower byte of the address of the subcommand read pointer into the E register. This command on the fifth line corresponds to step S4 in Figure 181.

図182(a)の6行目のコマンド「RST COUNTUP」によって、汎用モジュールであるCOUNTUPモジュールが読み出されて実行される。これにより、サブコマンドリードポインタの値は、サブコマンドポインタ上限値未満なら1加算され、サブコマンドポインタ上限値以上ならゼロクリアされる。かかる6行目のコマンドが、図181のステップS5に対応する。 The command "RST COUNTUP" on line 6 of FIG. 182(a) reads and executes the COUNTUP module, which is a general-purpose module. As a result, the value of the subcommand read pointer is incremented by 1 if it is less than the subcommand pointer upper limit value, and is cleared to zero if it is equal to or greater than the subcommand pointer upper limit value. This command on line 6 corresponds to step S5 in FIG. 181.

図182(a)の7行目のコマンド「LD HL,R_SBC_SBF」によって、サブコマンドバッファ(送信バッファ)のアドレスを示す「R_SBC_SBF」がHLレジスタに読み出される。かかる7行目のコマンドが、図181のステップS6に対応する。ここで、「R_SBC_SBF」は、2バイト長のデータである。サブコマンドバッファのアドレスの上位1バイトが「F0H」であれば、コマンド「LDQ」によって読み出すことが可能であるが、サブコマンドバッファの上位1バイトが「F1H」になっていることもあるため、ここでは、コマンド「LDQ」を使用せずに2バイト長のデータを読み出している。 The command "LD HL, R_SBC_SBF" on line 7 of Figure 182 (a) reads "R_SBC_SBF", which indicates the address of the sub-command buffer (transmission buffer), into the HL register. This command on line 7 corresponds to step S6 of Figure 181. Here, "R_SBC_SBF" is 2-byte data. If the most significant byte of the sub-command buffer address is "F0H", it can be read with the command "LDQ", but since the most significant byte of the sub-command buffer may be "F1H", the 2-byte data is read here without using the command "LDQ".

図182(a)の8行目のコマンド「RST WORDSEL」によって、汎用モジュールであるWORDSELモジュールが読み出され、HLレジスタにAレジスタの値を2回加算し、HLレジスタに示されるアドレスのうち、下位バイトの値(Lレジスタの値、すなわち、先行コマンド)がAレジスタに読み出される。かかる8行目のコマンドが、図181のステップS7に対応する。 The command "RST WORDSEL" on line 8 of Figure 182(a) reads the WORDSEL module, which is a general-purpose module, adds the value of the A register twice to the HL register, and reads the value of the lower byte of the address indicated in the HL register (the value of the L register, i.e., the preceding command) into the A register. This command on line 8 corresponds to step S7 in Figure 181.

図182(a)の9行目のコマンド「OUT (@S1DT__),A」によって、Aレジスタの値(先行コマンド)が、固定値「@S1DT__」で示されるアドレスに出力される。かかる9行目のコマンドが、図181のステップS8に対応する。 The command "OUT (@S1DT___), A" on line 9 of FIG. 182(a) outputs the value of the A register (preceding command) to the address indicated by the fixed value "@S1DT___". This command on line 9 corresponds to step S8 in FIG. 181.

図182(a)の10行目のコマンド「LD A,H」によって、Hレジスタの値(後続コマンド)がAレジスタに読み出される。かかる10行目のコマンドが、図181のS9に対応する。 The command "LD A,H" on line 10 of FIG. 182(a) reads the value of the H register (the subsequent command) into the A register. This command on line 10 corresponds to S9 in FIG. 181.

図182(a)の11行目のコマンド「OUT (@S1DT__),A」によって、Aレジスタの値(後続コマンド)が、固定値「@S1DT__」で示されるアドレスに出力され、当該SBC_OUTモジュールが終了する。かかる11行目のコマンドが、図181のステップS10に対応し、12行目のコマンドが、図181のステップS11に対応する。 The command "OUT (@S1DT___), A" on line 11 of FIG. 182(a) outputs the value of the A register (subsequent command) to the address indicated by the fixed value "@S1DT___", and the SBC_OUT module ends. This command on line 11 corresponds to step S10 in FIG. 181, and the command on line 12 corresponds to step S11 in FIG. 181.

ここで、図182(a)のコマンド群を図182(b)のように変更することができる。ここでは、サブコマンドバッファ(送信バッファ)の上位1バイトが「F1H」である場合について説明し、図182(a)と実質的に等しい処理についてはその説明を省略し、図182(b)の異なる処理のみを説明する。 The commands in FIG. 182(a) can be changed to those in FIG. 182(b). Here, we will explain the case where the most significant byte of the subcommand buffer (transmission buffer) is "F1H". We will omit the explanation of the processing that is essentially the same as in FIG. 182(a) and only explain the different processing in FIG. 182(b).

図182(b)の7行目のコマンド「LDQP HL,LOW R_SBC_SBF」によって、Qレジスタの値に1加算された値(すなわち、「F1H」)が上位に、「R_SBC_SBF」が下位となる値(サブコマンドバッファのアドレス)がHLレジスタに読み出される。かかる7行目のコマンドが、図181のステップS6に対応する。かかるコマンドのコマンドサイズは「3」であり、実行サイクルは「7(5)」である。 The command "LDQP HL, LOW R_SBC_SBF" on line 7 of Figure 182(b) causes a value (address of the sub-command buffer) to be read into the HL register, with the value of the Q register increased by 1 (i.e., "F1H") at the upper level and "R_SBC_SBF" at the lower level. This command on line 7 corresponds to step S6 in Figure 181. The command size of this command is "3", and the execution cycle is "7(5)".

ここで、図182(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_SBC_WPT)」2バイト+3行目コマンド「CPQ A,(LOW R_SBC_RPT)」3バイト+4行目のコマンド「RET Z」1バイト+5行目のコマンド「LD DE,@LMT_CMD_BFP*256+LOW R_SBC_RPT」2バイト+6行目のコマンド「RST COUNTUP」1バイト+7行目のコマンド「LD HL,R_SBC_SBF」3バイト+8行目のコマンド「RST WORDSEL」1バイト+9行目のコマンド「OUT (@S1DT__),A」2バイト+10行目のコマンド「LD A,H」1バイト+11行目のコマンド「OUT (@S1DT__),A」2バイト+12行目のコマンド「RET」1バイト=19バイトとなり、総実行サイクルは、2行目2サイクル+3行目4サイクル+4行目3(1)サイクル+5行目2サイクル+6行目4サイクル+7行目3サイクル+8行目4サイクル+9行目3サイクル+10行目1サイクル+11行目3サイクル+12行目3サイクル=32(30)サイクルとなる。なお、括弧内のサイクル数は、コマンド「RET Z」によって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。 Here, the total command size of the command group shown in FIG. 182(a) is: 2 bytes of the command "LDQ A, (LOW R_SBC_WPT)" on the second line + 3 bytes of the command "CPQ A, (LOW R_SBC_RPT)" on the third line + 1 byte of the command "RET Z" on the fourth line + 2 bytes of the command "LD DE, @LMT_CMD_BFP * 256 + LOW R_SBC_RPT" on the fifth line + 1 byte of the command "RST COUNTUP" on the sixth line + 3 bytes of the command "LD HL, R_SBC_SBF" on the seventh line + 1 byte of the command "RST WORDSEL" on the eighth line + 2 bytes of the command "OUT (@S1DT___), A" on the ninth line + 1 byte of the command "LD A, H" on the tenth line + 1 byte of the command "OUT 2 bytes of "(@S1DT__),A" + 1 byte of the command "RET" on line 12 = 19 bytes, and the total execution cycles are 2 cycles on line 2 + 4 cycles on line 3 + 3(1) cycles on line 4 + 2 cycles on line 5 + 4 cycles on line 6 + 3 cycles on line 7 + 4 cycles on line 8 + 3 cycles on line 9 + 1 cycle on line 10 + 3 cycles on line 11 + 3 cycles on line 12 = 32 (30) cycles. Note that the number of cycles in parentheses indicates the execution cycles if the routine above is not moved to by the command "RET Z".

一方、図182(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_SBC_WPT)」2バイト+3行目コマンド「CPQ A,(LOW R_SBC_RPT)」3バイト+4行目のコマンド「RET Z」1バイト+5行目のコマンド「LD DE,@LMT_CMD_BFP*256+LOW R_SBC_RPT」2バイト+6行目のコマンド「RST COUNTUP」1バイト+7行目のコマンド「LDQP HL,LOW R_SBC_SBF」3バイト+8行目のコマンド「RST WORDSEL」1バイト+9行目のコマンド「OUT (@S1DT__),A」2バイト+10行目のコマンド「LD A,H」1バイト+11行目のコマンド「OUT (@S1DT__),A」2バイト+12行目のコマンド「RET」1バイト=19バイトとなり、総実行サイクルは、2行目2サイクル+3行目4サイクル+4行目3(1)サイクル+5行目2サイクル+6行目4サイクル+7行目5サイクル+8行目4サイクル+9行目3サイクル+10行目1サイクル+11行目3サイクル+12行目3サイクル=34(32)サイクルとなる。なお、括弧内のサイクル数は、コマンド「RET Z」によって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。 On the other hand, the total command size of the command group shown in FIG. 182(b) is: 2 bytes of the command "LDQ A, (LOW R_SBC_WPT)" on the second line + 3 bytes of the command "CPQ A, (LOW R_SBC_RPT)" on the third line + 1 byte of the command "RET Z" on the fourth line + 2 bytes of the command "LD DE, @LMT_CMD_BFP * 256 + LOW R_SBC_RPT" on the fifth line + 1 byte of the command "RST COUNTUP" on the sixth line + 3 bytes of the command "LDQP HL, LOW R_SBC_SBF" on the seventh line + 1 byte of the command "RST WORDSEL" on the eighth line + 2 bytes of the command "OUT (@S1DT___), A" on the ninth line + 1 byte of the command "LD A, H" on the tenth line + 1 byte of the command "OUT 2 bytes of "(@S1DT__),A" + 1 byte of the command "RET" on line 12 = 19 bytes, and the total execution cycles are 2 cycles on line 2 + 4 cycles on line 3 + 3(1) cycles on line 4 + 2 cycles on line 5 + 4 cycles on line 6 + 5 cycles on line 7 + 4 cycles on line 8 + 3 cycles on line 9 + 1 cycle on line 10 + 3 cycles on line 11 + 3 cycles on line 12 = 34 (32) cycles. Note that the number of cycles in parentheses indicates the execution cycles if the routine above is not moved to by the command "RET Z".

したがって、図182(a)のコマンド群を図182(b)のコマンド群に置き換えることで、Qレジスタに「F0」が設定されている状態で、F100H以降のアドレスにアクセスする場合(上位の1バイトが「F1H」である場合)に、設計負荷の軽減を図ることが可能となる。なお、図37のステップS610-9で示した特別図柄記憶エリアシフト処理において、特別遊技特別図柄判定フラグを読み出す場合、特別遊技特別図判定フラグが格納されたアドレスの上位1バイトを「F1H」とし、コマンド「LDQP」を用いるようにしてもよい。さらに、図26のステップS400-29で示した外部情報管理処理において、出力ポート2バッファに合成ビットデータをセーブする場合に、出力ポート2バッファの上位1バイトを「F1H」とし、コマンド「LDQP」を用いるようにしてもよい。さらに、図25の電源断時退避処理において、バックアップ有効判定フラグにバックアップ有効判定値をセーブする場合に、バックアップ有効判定フラグが格納されたアドレスの上位1バイトを「F1H」とし、コマンド「LDQP」を用いるようにしてもよい。 Therefore, by replacing the command group in FIG. 182(a) with the command group in FIG. 182(b), when the Q register is set to "F0" and an address after F100H is accessed (when the upper byte is "F1H"), it is possible to reduce the design load. In the special symbol memory area shift process shown in step S610-9 of FIG. 37, when the special game special symbol determination flag is read, the upper byte of the address where the special game special symbol determination flag is stored may be set to "F1H" and the command "LDQP" may be used. Furthermore, in the external information management process shown in step S400-29 of FIG. 26, when the composite bit data is saved in the output port 2 buffer, the upper byte of the output port 2 buffer may be set to "F1H" and the command "LDQP" may be used. Furthermore, in the power-off save process of FIG. 25, when saving the backup validity judgment value to the backup validity judgment flag, the upper byte of the address where the backup validity judgment flag is stored may be set to "F1H" and the command "LDQP" may be used.

<RCPQ>
図183は、SBC_OUTモジュールを実現するための他のコマンドの一例を説明するための説明図である。なお、図183(a)は、図182(a)と同一であるため、説明は省略する。また、図183(b)について、図183(a)と実質的に等しい処理についてはその説明を省略し、図183(b)の異なる処理のみを説明する。
<RCPQ>
Fig. 183 is an explanatory diagram for explaining an example of another command for realizing the SBC_OUT module. Since Fig. 183(a) is the same as Fig. 182(a), the explanation will be omitted. Regarding Fig. 183(b), the explanation of the process substantially the same as Fig. 183(a) will be omitted, and only the different process of Fig. 183(b) will be explained.

図183(b)の3行目のコマンド「RCPQ Z,A,(LOW R_SBC_RPT)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_SBC_RPT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(サブコマンドリードポインタの値)と、Aレジスタの値(サブコマンドライトポインタの値)とを比較し、ゼロフラグに1が立っていれば、コマンド「RET」を実行するように、当該SBC_OUTモジュールを終了する。かかる3行目のコマンドが、図181のステップS2~S4に対応する。かかるコマンドのコマンドサイズは「3」であり、実行サイクルは「7(5)」である。なお、括弧内のサイクル数は、かかるコマンドによって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。 The command "RCPQ Z,A,(LOW R_SBC_RPT)" on the third line of Fig. 183(b) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_SBC_RPT" to the lower byte of the address, compares the value stored at that address (the value of the subcommand read pointer) with the value of the A register (the value of the subcommand write pointer), and if the zero flag is set to 1, terminates the SBC_OUT module so that the command "RET" is executed. This command on the third line corresponds to steps S2 to S4 in Fig. 181. The command size of this command is "3", and the execution cycle is "7(5)". The number of cycles in parentheses indicates the execution cycle when the command does not move to the next higher routine.

ここで、図183(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_SBC_WPT)」2バイト+3行目コマンド「RCPQ Z,A,(LOW R_SBC_RPT)」3バイト+4行目のコマンド「LD DE,@LMT_CMD_BFP*256+LOW R_SBC_RPT」2バイト+5行目のコマンド「RST COUNTUP」1バイト+6行目のコマンド「LD HL,R_SBC_SBF」3バイト+7行目のコマンド「RST WORDSEL」1バイト+8行目のコマンド「OUT (@S1DT__),A」2バイト+9行目のコマンド「LD A,H」1バイト+10行目のコマンド「OUT (@S1DT__),A」2バイト+11行目のコマンド「RET」1バイト=18バイトとなり、総実行サイクルは、2行目2サイクル+3行目7(5)サイクル+4行目2サイクル+5行目4サイクル+6行目3サイクル+7行目4サイクル+8行目3サイクル+9行目1サイクル+10行目3サイクル+11行目3サイクル=32(30)サイクルとなる。なお、括弧内のサイクル数は、コマンド「RCPQ Z,A,(LOW R_SBC_RPT)」によって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。 Here, the total command size of the command group shown in FIG. 183(b) is: 2 bytes of the command "LDQ A, (LOW R_SBC_WPT)" on the second line + 3 bytes of the command "RCPQ Z,A, (LOW R_SBC_RPT)" on the third line + 2 bytes of the command "LD DE,@LMT_CMD_BFP*256+LOW R_SBC_RPT" on the fourth line + 1 byte of the command "RST COUNTUP" on the fifth line + 3 bytes of the command "LD HL,R_SBC_SBF" on the sixth line + 1 byte of the command "RST WORDSEL" on the seventh line + 2 bytes of the command "OUT (@S1DT___),A" on the eighth line + 1 byte of the command "LD A,H" on the ninth line + 1 byte of the command "OUT 2 bytes of "(@S1DT___),A" + 1 byte of the command "RET" on line 11 = 18 bytes, and the total execution cycles are 2 cycles on line 2 + 7 (5) cycles on line 3 + 2 cycles on line 4 + 4 cycles on line 5 + 3 cycles on line 6 + 4 cycles on line 7 + 3 cycles on line 8 + 1 cycle on line 9 + 3 cycles on line 10 + 3 cycles on line 11 = 32 (30) cycles. Note that the number of cycles in parentheses indicates the execution cycles when the routine above is not moved by the command "RCPQ Z,A,(LOW R_SBC_RPT)".

したがって、図183(a)のコマンド群を図183(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減される。かかる置き換えによって、コマンドの短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Therefore, by replacing the command group in FIG. 183(a) with the command group in FIG. 183(b), the total command size is reduced by 1 byte. This replacement shortens the commands and makes it possible to secure the capacity of the control area for performing game control processing.

また、図183(a)と図183(b)とを比較して理解できるように、図183(a)において2行(3行目~4行目)を占有していたコマンド群を、図183(b)においては1行(3行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 183(a) and 183(b), the command group that occupies two lines (lines 3 and 4) in Figure 183(a) can be represented in one line (line 3) in Figure 183(b), making it possible to reduce the number of commands and lighten the design load.

図184は、FZ_OPNモジュールを実現するためのコマンドの一例を説明するための説明図である。図184に示したFZ_OPNモジュールは、普通電動役物入賞口開放制御処理(図57参照)を実行する。 Figure 184 is an explanatory diagram for explaining an example of a command for realizing the FZ_OPN module. The FZ_OPN module shown in Figure 184 executes the normal electric role winning opening control process (see Figure 57).

普通電動役物入賞口開放制御処理では、上記ステップS850-5において、普通電動役物入賞球数カウンタのカウンタ値が規定数に到達していないか、すなわち、第1可変始動口120Bに、1回の開閉制御中の最大入賞可能数と同数の遊技球が入球していないかを判定する。その結果、規定数に到達していないと判定した場合には当該普通電動役物入賞口開放制御処理を終了し、規定数に到達したと判定した場合にはステップS850-7に処理を移す。 In the normal electric device winning opening control process, in step S850-5, it is determined whether the counter value of the normal electric device winning ball counter has reached a specified number, i.e., whether the first variable start opening 120B has received the same number of game balls as the maximum number of winning balls during one opening/closing control. If it is determined that the specified number has not been reached, the normal electric device winning opening control process is terminated, and if it is determined that the specified number has been reached, the process proceeds to step S850-7.

この普通電動役物入賞口開放制御処理として、図184(a)の1行目の指標「FZ_OPN:」は、当該FZ_OPNモジュールの先頭アドレスを示す。そして、ステップS850-5として、2行目のコマンド「LDQ A,(LOW R_FDN_CNT)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FDN_CNT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(普通電動役物入賞球数カウンタのカウンタ値)をAレジスタに読み出す。3行目のコマンド「CP A、@FDN_CNT」によって、Aレジスタの値と、規定数を示す固定値「@FDN_CNT」、ここでは、8とを比較する。すなわち、Aレジスタの値が8未満であれば、キャリーフラグが立って1となる。そして、4行目の「RET C」によって、キャリーフラグが1であれば、当該FZ_OPNモジュールを終了する。すなわち、普通電動役物入賞球数カウンタのカウンタ値が8未満であれば、当該FZ_OPNモジュールを終了する。なお、キャリーフラグが1でなければ、以降の処理を実行する。 As the normal electric role winning opening control process, the index "FZ_OPN:" on the first line of FIG. 184(a) indicates the starting address of the FZ_OPN module. Then, in step S850-5, the command "LDQ A, (LOW R_FDN_CNT)" on the second line sets the value of the Q register as the upper byte of the address, sets the value of the lower byte of the address "R_FDN_CNT" as the lower byte of the address, and reads the value stored at that address (the counter value of the normal electric role winning ball counter) into the A register. The command "CP A, @FDN_CNT" on the third line compares the value of the A register with the fixed value "@FDN_CNT" indicating the specified number, which is 8 in this case. In other words, if the value of the A register is less than 8, the carry flag is set to 1. Then, if the carry flag is 1, the FZ_OPN module is terminated by "RET C" on the fourth line. In other words, if the counter value of the normal electric device winning ball counter is less than 8, the FZ_OPN module is terminated. If the carry flag is not 1, the following process is executed.

ここで、図184(a)のコマンド群を図184(b)のように変更することができる。ここでは、図184(a)と実質的に等しい処理についてはその説明を省略し、図184(b)の異なる処理のみを説明する。 The command group in FIG. 184(a) can be changed to that in FIG. 184(b). Here, we will omit the explanation of the processing that is essentially the same as in FIG. 184(a), and only explain the different processing in FIG. 184(b).

図184(b)の2行目のコマンド「RCPQ C,(LOW R_FDN_CNT),@FDN_CNT」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FDN_CNT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(普通電動役物入賞球数カウンタのカウンタ値)と、規定数を示す固定値「@FDN_CNT」、ここでは、8とを比較し、キャリーフラグが1であれば、コマンド「RET」を実行するように、当該FZ_OPNモジュールを終了する。かかるコマンドのコマンドサイズは「4」であり、実行サイクルは「8(6)」である。なお、括弧内のサイクル数は、かかるコマンドによって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。 The command "RCPQ C, (LOW R_FDN_CNT), @FDN_CNT" on the second line of FIG. 184(b) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_FDN_CNT" to the lower byte of the address, and compares the value stored at that address (the counter value of the winning ball counter for ordinary electric gimmicks) with the fixed value "@FDN_CNT" indicating the specified number, here 8, and if the carry flag is 1, ends the FZ_OPN module so that the command "RET" is executed. The command size of this command is "4", and the execution cycle is "8(6)". The number of cycles in parentheses indicates the execution cycle when the command does not move to the next higher routine.

ここで、図184(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_FDN_CNT)」2バイト+3行目コマンド「CP A、@FDN_CNT」3バイト+4行目のコマンド「RET C」1バイト=6バイトとなり、総実行サイクルは、2行目2サイクル+3行目4サイクル+4行目3(1)サイクル=9(7)サイクルとなる。なお、括弧内のサイクル数は、コマンド「RET C」によって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。 The total command size of the command group shown in FIG. 184(a) is 2 bytes for the command "LDQ A, (LOW R_FDN_CNT)" on line 2 + 3 bytes for the command "CP A, @FDN_CNT" on line 3 + 1 byte for the command "RET C" on line 4 = 6 bytes, and the total execution cycles are 2 cycles on line 2 + 4 cycles on line 3 + 3(1) cycles on line 4 = 9(7) cycles. Note that the number of cycles in parentheses indicates the execution cycles when the command "RET C" does not move to the routine above.

一方、図184(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「RCPQ C,(LOW R_FDN_CNT),@FDN_CNT」4バイト=4バイトとなり、総実行サイクルは、2行目8(6)サイクル=8(6)サイクルとなる。なお、括弧内のサイクル数は、コマンド「RCPQ C,(LOW R_FDN_CNT),@FDN_CNT」によって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。 On the other hand, the total command size of the command group shown in FIG. 184(b) is the command on line 2, "RCPQ C, (LOW R_FDN_CNT), @FDN_CNT" 4 bytes = 4 bytes, and the total execution cycles are line 2, 8(6) cycles = 8(6) cycles. Note that the number of cycles in parentheses indicates the execution cycles when the command "RCPQ C, (LOW R_FDN_CNT), @FDN_CNT" does not move to the routine above.

したがって、図184(a)のコマンド群を図184(b)のコマンド群に置き換えることで、総コマンドサイズが2バイト削減され、総実行サイクルも少なくとも1サイクル削減される。かかる置き換えによって、コマンドの短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Therefore, by replacing the command group in FIG. 184(a) with the command group in FIG. 184(b), the total command size is reduced by 2 bytes, and the total execution cycle is also reduced by at least 1 cycle. This replacement shortens the commands and reduces the processing load, making it possible to secure the capacity of the control area for performing game control processing.

また、図184(a)と図184(b)とを比較して理解できるように、図184(a)において3行(2行目~4行目)を占有していたコマンド群を、図184(b)においては1行(2行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 184(a) and 184(b), the command group that occupies three lines (lines 2 to 4) in Figure 184(a) can be represented in one line (line 2) in Figure 184(b), making it possible to reduce the number of commands and lighten the design load.

また、図184(b)の例では、Aレジスタを利用していない。したがって、Aレジスタの値を意図せず更新してしまうことはない。また、図184(a)の例では、Aレジスタが既に利用されている場合、スタックしてAレジスタの値を退避する必要があったが、ここでは、Aレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 In addition, in the example of FIG. 184(b), the A register is not used. Therefore, the value of the A register will not be updated unintentionally. Also, in the example of FIG. 184(a), if the A register was already in use, it was necessary to save the value of the A register by stacking, but here, since the A register is not used, stack processing is not required. In this way, it becomes possible to make effective use of resources.

図185は、TD_OPNモジュールを実現するためのコマンドの一例を説明するための説明図である。図185に示したTD_OPNモジュールは、大入賞口開放制御処理(図47参照)を実行する。 Figure 185 is an explanatory diagram for explaining an example of a command for realizing the TD_OPN module. The TD_OPN module shown in Figure 185 executes the large prize opening control process (see Figure 47).

大入賞口開放制御処理では、上記ステップS720-5において、大入賞口入賞球数カウンタのカウンタ値が規定数に到達していないか、すなわち、大入賞口に、1ラウンド中の最大入賞可能数と同数の遊技球が入球していないかを判定する。その結果、規定数に到達していないと判定した場合には当該大入賞口開放制御処理を終了し、規定数に到達したと判定した場合にはステップS720-7に処理を移す。 In the special prize opening control process, in step S720-5, it is determined whether the counter value of the special prize opening winning ball counter has reached a specified number, i.e., whether the number of game balls equal to the maximum number of winning balls in one round has entered the special prize opening. If it is determined that the specified number has not been reached, the special prize opening control process is terminated, and if it is determined that the specified number has been reached, the process proceeds to step S720-7.

この大入賞口開放制御処理として、図185(a)の1行目の指標「TD_OPN:」は、当該TD_OPNモジュールの先頭アドレスを示す。そして、ステップS720-5として、2行目のコマンド「LDQ A,(LOW R_TDN_FLG)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_TDN_FLG」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(特別電動役物指定フラグ)をAレジスタに読み出す。なお、特別電動役物指定フラグは、どの大入賞口が当該大入賞口開放制御処理の対象となっているかを示すものである。 In this large prize opening control process, the indicator "TD_OPN:" on the first line of FIG. 185(a) indicates the starting address of the TD_OPN module. Then, in step S720-5, the command "LDQ A, (LOW R_TDN_FLG)" on the second line sets the value of the Q register as the upper byte of the address, sets the value of the lower byte of the address "R_TDN_FLG" as the lower byte of the address, and reads the value stored at that address (special electric device designation flag) into the A register. The special electric device designation flag indicates which large prize opening is the target of the large prize opening control process.

3行目のコマンド「LD HL、D_TDC_MAX-1」によって、大入賞口規定入賞数データテーブル(図14における特別電動役物作動ラムセットテーブルの規定数が示されるテーブル)のアドレスから1減算した値をHLレジスタに読み出す。 The command on the third line, "LD HL, D_TDC_MAX-1", reads the value obtained by subtracting 1 from the address of the data table of the number of prizes specified for the large prize slot (the table showing the number specified for the special electric device operation RAM set table in Figure 14) into the HL register.

図185(a)の4行目のコマンド「RST BYTESEL」によって、汎用モジュールであるBYTESELモジュールが読み出され、HLレジスタにAレジスタの値を加算し、HLレジスタに示されるアドレスに格納された値(規定数)がAレジスタに読み出される。 The command "RST BYTESEL" on the fourth line of Figure 185(a) calls the BYTESEL module, which is a general-purpose module, adds the value of the A register to the HL register, and reads the value (prescribed number) stored at the address indicated in the HL register into the A register.

図185(a)の5行目のコマンド「CPQ A、(LOW R_TDN_CNT)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_TDN_CNT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(大入賞口入賞球数カウンタのカウンタ値)と、Aレジスタの値、ここでは、10とを比較する。すなわち、同アドレスに格納された値が10未満であれば、キャリーフラグが立たずに0となる。そして、6行目の「RET NC」によって、キャリーフラグが0であれば、当該TD_OPNモジュールを終了する。すなわち、大入賞口入賞球数カウンタのカウンタ値が10未満であれば、当該TD_OPNモジュールを終了する。なお、キャリーフラグが1であれば、以降の処理を実行する。 The command "CPQ A, (LOW R_TDN_CNT)" on the fifth line of FIG. 185(a) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_TDN_CNT" to the lower byte of the address, and compares the value stored at that address (the counter value of the large prize opening winning ball counter) with the value of the A register, here 10. In other words, if the value stored at the same address is less than 10, the carry flag is not set and becomes 0. Then, the "RET NC" on the sixth line ends the TD_OPN module if the carry flag is 0. In other words, if the counter value of the large prize opening winning ball counter is less than 10, the TD_OPN module ends. Note that if the carry flag is 1, the subsequent processing is executed.

ここで、図185(a)のコマンド群を図185(b)のように変更することができる。ここでは、図185(a)と実質的に等しい処理についてはその説明を省略し、図185(b)の異なる処理のみを説明する。 The command group in FIG. 185(a) can be changed to that in FIG. 185(b). Here, we will omit the explanation of the processing that is essentially the same as in FIG. 185(a), and only explain the different processing in FIG. 185(b).

図185(b)の5行目のコマンド「RCPQ NC,A, (LOW R_TDN_CNT)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_TDN_CNT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(大入賞口入賞球数カウンタのカウンタ値)と、Aレジスタの値(既定値)、ここでは、10とを比較し、キャリーフラグが0であれば、コマンド「RET」を実行するように、当該TD_OPNモジュールを終了する。かかるコマンドのコマンドサイズは「3」であり、実行サイクルは「7(5)」である。なお、括弧内のサイクル数は、かかるコマンドによって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。 The command "RCPQ NC,A, (LOW R_TDN_CNT)" on the fifth line of FIG. 185(b) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_TDN_CNT" to the lower byte of the address, and compares the value stored at that address (the counter value of the large prize slot winning ball counter) with the value of the A register (default value), here 10. If the carry flag is 0, the TD_OPN module is terminated to execute the command "RET". The command size of this command is "3", and the execution cycle is "7(5)". The number of cycles in parentheses indicates the execution cycle when the command does not move to the next higher routine.

ここで、図185(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_TDN_FLG)」2バイト+3行目コマンド「LD HL、D_TDC_MAX-1」3バイト+4行目のコマンド「RST BYTESEL」1バイト+5行目コマンド「CPQ A、(LOW R_TDN_CNT)」3バイト+4行目のコマンド「RET NC」1バイト=10バイトとなり、総実行サイクルは、2行目2サイクル+3行目3サイクル+4行目3サイクル+5行目4サイクル+4行目3(1)サイクル=15(13)サイクルとなる。なお、括弧内のサイクル数は、コマンド「RET NC」によって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。 The total command size of the command group shown in FIG. 185(a) is 2 bytes of the command "LDQ A, (LOW R_TDN_FLG)" on the second line + 3 bytes of the command "LD HL, D_TDC_MAX-1" on the third line + 1 byte of the command "RST BYTESEL" on the fourth line + 3 bytes of the command "CPQ A, (LOW R_TDN_CNT)" on the fifth line + 1 byte of the command "RET NC" on the fourth line = 10 bytes, and the total execution cycles are 2 cycles on the second line + 3 cycles on the third line + 3 cycles on the fourth line + 4 cycles on the fifth line + 3(1) cycles on the fourth line = 15 (13) cycles. The number of cycles in parentheses indicates the execution cycles when the command "RET NC" does not move to the next higher routine.

一方、図185(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_TDN_FLG)」2バイト+3行目コマンド「LD HL,D_TDC_MAX-1」3バイト+4行目のコマンド「RST BYTESEL」1バイト+5行目コマンド「RCPQ NC,A, (LOW R_TDN_CNT)」3バイト=9バイトとなり、総実行サイクルは、2行目2サイクル+3行目3サイクル+4行目3サイクル+5行目7(5)サイクル=15(13)サイクルとなる。なお、括弧内のサイクル数は、コマンド「RCPQ NC,A, (LOW R_TDN_CNT)」によって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。 On the other hand, the total command size of the command group shown in FIG. 185(b) is 2 bytes of the command "LDQ A, (LOW R_TDN_FLG)" on the second line + 3 bytes of the command "LD HL, D_TDC_MAX-1" on the third line + 1 byte of the command "RST BYTESEL" on the fourth line + 3 bytes of the command "RCPQ NC, A, (LOW R_TDN_CNT)" on the fifth line = 9 bytes, and the total execution cycles are 2 cycles on the second line + 3 cycles on the third line + 3 cycles on the fourth line + 7 (5) cycles on the fifth line = 15 (13) cycles. Note that the number of cycles in parentheses indicates the execution cycles when the command "RCPQ NC, A, (LOW R_TDN_CNT)" does not move to the routine above.

したがって、図185(a)のコマンド群を図185(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減される。かかる置き換えによって、コマンドの短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Therefore, by replacing the command group in FIG. 185(a) with the command group in FIG. 185(b), the total command size is reduced by 1 byte. This replacement shortens the commands and makes it possible to secure the capacity of the control area for performing game control processing.

また、図185(a)と図185(b)とを比較して理解できるように、図185(a)において2行(5行目~6行目)を占有していたコマンド群を、図185(b)においては1行(5行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 185(a) and 185(b), the command group that occupies two lines (lines 5 and 6) in Figure 185(a) can be represented in one line (line 5) in Figure 185(b), making it possible to reduce the number of commands and lighten the design load.

<JCPQ>
図186は、HSY_PRCモジュールを実現するためのコマンドの一例を説明するための説明図である。図186に示したHSY_PRCモジュールは、発射位置指定管理処理(図26のステップS400-27参照)を実行する。
<JCPQ>
Fig. 186 is an explanatory diagram for explaining an example of a command for realizing the HSY_PRC module. The HSY_PRC module shown in Fig. 186 executes the launch position designation management process (see step S400-27 in Fig. 26).

この発射位置指定管理処理として、図186(a)の1行目の指標「HSY_PRC:」は、当該HSY_PRCモジュールの先頭アドレスを示す。2行目のコマンド「XOR A,A」によって、Aレジスタの値と、Aレジスタの値との排他的論理和を計算し、Aレジスタを初期化する。 In this launch position designation management process, the index "HSY_PRC:" on the first line of Figure 186 (a) indicates the starting address of the HSY_PRC module. The command "XOR A,A" on the second line calculates the exclusive OR of the value of the A register and the value of the A register, and initializes the A register.

そして、3行目のコマンド「LDQ HL,LOW R_TDN_FLG」によって、Qレジスタの値をHレジスタに読み出し、アドレス「R_TDN_FLG」の下位1バイトの値をLレジスタに読み出す。 Then, the command on the third line, "LDQ HL, LOW R_TDN_FLG," reads the value of the Q register into the H register, and reads the value of the lowest byte of the address "R_TDN_FLG" into the L register.

4行目のコマンド「JCP NZ,(HL),@TDK_AT2,HSY_PRC_10」によって、HLレジスタに示される値(特別電動役物指定フラグ)と、第2大入賞口を示す固定値「@TDK_AT2」とを比較し、ゼロフラグに1が立っていなければ、7行目の指標「HSY_PRC_10」に示されるアドレスに移動する(処理を分岐させる)。 The command on the fourth line, "JCP NZ, (HL), @TDK_AT2, HSY_PRC_10," compares the value indicated in the HL register (special electric device designation flag) with the fixed value "@TDK_AT2" indicating the second large winning slot, and if the zero flag is not set to 1, it moves to the address indicated by the index "HSY_PRC_10" on the seventh line (branching the process).

一方、ゼロフラグに1が立っていれば、5行目のコマンド「LDQ HL,LOW R_ZUG_CHK_FIX」によって、Qレジスタの値をHレジスタに読み出し、アドレス「R_ZUG_CHK_FIX」の下位1バイトの値をLレジスタに読み出す。 On the other hand, if the zero flag is set to 1, the command on line 5, "LDQ HL,LOW R_ZUG_CHK_FIX", reads the value of the Q register into the H register and reads the value of the lowest byte of the address "R_ZUG_CHK_FIX" into the L register.

6行目のコマンド「JCP NZ,(HL),@ZUG_SML1,HSY_PRC_20」によって、HLレジスタに示される値(特別図柄判定フラグ)と、小当たり図柄1指定データを示す固定値「@ZUG_SML1」、ここでは、07Hとを比較し、ゼロフラグに1が立っていなければ、8行目の指標「HSY_PRC_20」に示されるアドレスに移動する(処理を分岐させる)。 The command on line 6, "JCP NZ, (HL), @ZUG_SML1, HSY_PRC_20", compares the value indicated in the HL register (special symbol determination flag) with the fixed value "@ZUG_SML1" indicating the small win symbol 1 designation data, here 07H, and if the zero flag is not set to 1, it moves to the address indicated by the index "HSY_PRC_20" on line 8 (branching the process).

ここで、図186(a)のコマンド群を図186(b)のように変更することができる。ここでは、図186(a)と実質的に等しい処理についてはその説明を省略し、図186(b)の異なる処理のみを説明する。 The command group in FIG. 186(a) can be changed to that in FIG. 186(b). Here, we will omit the explanation of the processing that is essentially the same as in FIG. 186(a), and only explain the different processing in FIG. 186(b).

図186(b)の3行目のコマンド「JCPQ NZ,(LOW R_TDN_FLG),@TDK_AT2,HSY_PRC_10」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_TDN_FLG」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに示される値(特別電動役物指定フラグ)と、第2大入賞口を示す固定値「@TDK_AT2」とを比較し、ゼロフラグに1が立っていなければ、5行目の指標「HSY_PRC_10」に示されるアドレスに移動する(処理を分岐させる)。 The command "JCPQ NZ, (LOW R_TDN_FLG), @TDK_AT2, HSY_PRC_10" on the third line of Figure 186 (b) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_TDN_FLG" to the lower byte of the address, and compares the value indicated at that address (special electric device designation flag) with the fixed value "@TDK_AT2" indicating the second large winning slot. If the zero flag is not set to 1, it moves to the address indicated by the index "HSY_PRC_10" on the fifth line (branching the process).

図186(b)の4行目のコマンド「JCPQ NZ,(LOW R_ZUF_CHK_FIX,@ZUG_SML1,HSY_PRC_20」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_ZUF_CHK_FIX」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに示される値(特別図柄判定フラグ)と、第2大入賞口を示す固定値「@TDK_AT2」とを比較し、小当たり図柄1指定データを示す固定値「@ZUG_SML1」、ここでは、07Hとを比較し、ゼロフラグに1が立っていなければ、6行目の指標「HSY_PRC_20」に示されるアドレスに移動する(処理を分岐させる)。 The command "JCPQ NZ, (LOW R_ZUF_CHK_FIX, @ZUG_SML1, HSY_PRC_20" on the fourth line of Figure 186 (b) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_ZUF_CHK_FIX" to the lower byte of the address, and compares the value indicated at that address (special symbol determination flag) with the fixed value "@TDK_AT2" indicating the second large winning slot, and with the fixed value "@ZUG_SML1" indicating the small winning symbol 1 designation data, here 07H. If the zero flag is not set to 1, it moves to the address indicated by the index "HSY_PRC_20" on the sixth line (branching the process).

ここで、図186(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「XOR A,A」1バイト+3行目のコマンド「LDQ HL,LOW R_TDN_FLG」2バイト+4行目のコマンド「JCP NZ,(HL),@TDK_AT2,HSY_PRC_10」4バイト+5行目のコマンド「LDQ HL,LOW R_ZUG_CHK_FIX」2バイト+6行目のコマンド「JCP NZ,(HL),@ZUG_SML1,HSY_PRC_20」4バイト=13バイトとなり、総実行サイクルは、2行目1サイクル+3行目2サイクル+4行目6(5)サイクル+5行目2サイクル+6行目2サイクル6(5)=17(15)サイクルとなる。なお、括弧内のサイクル数は、コマンド「JCP NZ,・・・」によって移動しなかった場合の実行サイクルを示している。 Here, the total command size of the command group shown in FIG. 186(a) is 1 byte of the command "XOR A,A" on line 2 + 2 bytes of the command "LDQ HL,LOW R_TDN_FLG" on line 3 + 4 bytes of the command "JCP NZ,(HL),@TDK_AT2,HSY_PRC_10" on line 4 + 2 bytes of the command "LDQ HL,LOW R_ZUG_CHK_FIX" on line 5 + 4 bytes of the command "JCP NZ,(HL),@ZUG_SML1,HSY_PRC_20" on line 6 = 13 bytes, and the total execution cycles are 1 cycle on line 2 + 2 cycles on line 3 + 6(5) cycles on line 4 + 2 cycles on line 5 + 26(5) cycles on line 6 = 17(15) cycles. Note that the number of cycles in parentheses indicates the execution cycles if no movement is made using the command "JCP NZ,...".

一方、図186(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「XOR A,A」1バイト+3行目のコマンド「JCPQ NZ,(LOW R_TDN_FLG),@TDK_AT2,HSY_PRC_10」4バイト+4行目のコマンド「JCPQ NZ,(LOW R_ZUG_CHK_FIX,@ZUG_SML1,HSY_PRC_20」4バイト=9バイトとなり、総実行サイクルは、2行目1サイクル+3行目6(5)サイクル+4行目6(5)=13(11)サイクルとなる。なお、括弧内のサイクル数は、コマンド「JCP NZ,・・・」によって移動しなかった場合の実行サイクルを示している。 On the other hand, the total command size of the command group shown in FIG. 186(b) is 1 byte of the command "XOR A,A" on the second line + 4 bytes of the command "JCPQ NZ, (LOW R_TDN_FLG), @TDK_AT2, HSY_PRC_10" on the third line + 4 bytes of the command "JCPQ NZ, (LOW R_ZUG_CHK_FIX, @ZUG_SML1, HSY_PRC_20" on the fourth line = 9 bytes, and the total execution cycles are 1 cycle on the second line + 6(5) cycles on the third line + 6(5) cycles on the fourth line = 13(11) cycles. Note that the number of cycles in parentheses indicates the execution cycles if no movement was made by the command "JCP NZ, ...".

したがって、図186(a)のコマンド群を図186(b)のコマンド群に置き換えることで、総コマンドサイズが4バイト削減され、総実行サイクルも少なくとも4サイクル削減される。かかる置き換えによって、コマンドの短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Therefore, by replacing the command group in FIG. 186(a) with the command group in FIG. 186(b), the total command size is reduced by 4 bytes, and the total execution cycles are also reduced by at least 4 cycles. This replacement shortens the commands and reduces the processing load, making it possible to secure the capacity of the control area for performing game control processing.

また、図186(a)と図186(b)とを比較して理解できるように、図186(a)において4行(3行目~6行目)を占有していたコマンド群を、図186(b)においては2行(3行目~4行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 186(a) and 186(b), the command group that occupies four lines (lines 3 to 6) in Figure 186(a) can be represented in two lines (lines 3 to 4) in Figure 186(b), making it possible to reduce the number of commands and lighten the design load.

また、図186(b)の例では、Aレジスタを利用していない。したがって、Aレジスタの値を意図せず更新してしまうことはない。また、図186(a)の例では、Aレジスタが既に利用されている場合、スタックしてAレジスタの値を退避する必要があったが、ここでは、Aレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 In addition, in the example of FIG. 186(b), the A register is not used. Therefore, the value of the A register will not be updated unintentionally. Also, in the example of FIG. 186(a), if the A register was already in use, it was necessary to save the value of the A register by stacking, but here, since the A register is not used, stack processing is not required. In this way, resources can be used efficiently.

図187は、FDN_CHKモジュールを実現するためのコマンドの一例を説明するための説明図である。図187に示したFDN_CHKモジュールは、普通電動役物入賞時確認処理(図28のステップS500-9参照)を実行する。 Figure 187 is an explanatory diagram for explaining an example of a command for implementing the FDN_CHK module. The FDN_CHK module shown in Figure 187 executes the confirmation process when a normal electric device wins (see step S500-9 in Figure 28).

この普通電動役物入賞時確認処理として、図187(a)の1行目の指標「FDN_CHK:」は、当該FDN_CHKモジュールの先頭アドレスを示す。 For the confirmation process when a normal electric device wins, the indicator "FDN_CHK:" on the first line of Figure 187 (a) indicates the starting address of the FDN_CHK module.

そして、2行目のコマンド「LDQ HL,(LOW R_FDN_EFF)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FDN_EFF」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスの値(普通電動役物閉鎖有効タイマの値)をHLレジスタに読み出す。 Then, the command on the second line, "LDQ HL, (LOW R_FDN_EFF)," sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_FDN_EFF" to the lower byte of the address, and reads the value of that address (the value of the normal electric feature closure valid timer) into the HL register.

3行目のコマンド「RET NTZ」によって、ゼロフラグが1でなければ、当該FDN_CHKモジュールを終了する。ここで「NTZ」としているのは、コマンド「LDQ HL,(LOW R_FDN_EFF)」によって第2ゼロフラグは変化するが第1ゼロフラグは変化しないからである。 The command "RET NTZ" on the third line terminates the FDN_CHK module if the zero flag is not 1. "NTZ" is used here because the command "LDQ HL, (LOW R_FDN_EFF)" changes the second zero flag but does not change the first zero flag.

4行目のコマンド「LDQ A,(LOW R_FUT_PHS)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FUT_PHS」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスの値(普通遊技管理フェーズ)をAレジスタに読み出す。 The command on the fourth line, "LDQ A, (LOW R_FUT_PHS)," sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_FUT_PHS" to the lower byte of the address, and reads the value of that address (normal game management phase) into the A register.

5行目のコマンド「JCP NZ,A,@FD_OPN,FDN_CHK_10」によって、Aレジスタに示される値(普通遊技管理フェーズ)と、普通電動役物入賞口開放制御処理を示す固定値「@FD_OPN」、ここでは04Hとを比較し、ゼロフラグに1が立っていなければ、8行目の指標「FDN_CHK_10」に示されるアドレスに移動する(処理を分岐させる)。 The command on line 5, "JCP NZ,A,@FD_OPN,FDN_CHK_10", compares the value indicated in the A register (normal game management phase) with the fixed value "@FD_OPN", which indicates the normal electric device winning opening control process, in this case 04H, and if the zero flag is not set to 1, it moves to the address indicated by the index "FDN_CHK_10" on line 8 (branching the process).

一方、ゼロフラグに1が立っていれば、6行目のコマンド「INCQ (LOW R_FDN_CNT)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FDN_CNT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(普通電動役物入賞球数カウンタのカウンタ値)に1加算し、同アドレスに、加算した値を格納し、7行目のコマンド「RET」によって、当該FDN_CHKモジュールを終了する。 On the other hand, if the zero flag is set to 1, the command "INCQ (LOW R_FDN_CNT)" on line 6 sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_FDN_CNT" to the lower byte of the address, adds 1 to the value stored at that address (the counter value of the normal electric device winning ball counter), stores the added value at the same address, and the command "RET" on line 7 ends the FDN_CHK module.

ここで、図187(a)のコマンド群を図187(b)のように変更することができる。ここでは、図187(a)と実質的に等しい処理についてはその説明を省略し、図187(b)の異なる処理のみを説明する。 The commands in FIG. 187(a) can be changed to those in FIG. 187(b). Here, we will omit the explanation of the processes that are essentially the same as those in FIG. 187(a), and only explain the different processes in FIG. 187(b).

図187(b)の4行目のコマンド「JCPQ NZ,(LOW R_FUT_PHS),@FD_OPN,FDN_CHK_10」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FUT_PHS」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスの値(普通遊技管理フェーズ)と、普通電動役物入賞口開放制御処理を示す固定値「@FD_OPN」、ここでは04Hとを比較し、ゼロフラグに1が立っていなければ、7行目の指標「FDN_CHK_10」に示されるアドレスに移動する(処理を分岐させる)。 The command "JCPQ NZ, (LOW R_FUT_PHS), @FD_OPN, FDN_CHK_10" on the fourth line of Figure 187 (b) sets the value of the Q register as the upper byte of the address, sets the value of the lowest byte of the address "R_FUT_PHS" as the lower byte of the address, and compares the value of that address (normal game management phase) with the fixed value "@FD_OPN" indicating the normal electric device winning opening control process, 04H in this case. If the zero flag is not set to 1, it moves to the address indicated by the index "FDN_CHK_10" on the seventh line (branching the process).

ここで、図187(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ HL,(LOW R_FDN_EFF)」2バイト+3行目のコマンド「RET NTZ」1バイト+4行目のコマンド「LDQ A,(LOW R_FUT_PHS)」2バイト+5行目のコマンド「JCP NZ,A,@FD_OPN,FDN_CHK_10」3バイト+6行目のコマンド「INCQ (LOW R_FDN_CNT)」2バイト+7行目のコマンド「RET」1バイト=11バイトとなり、総実行サイクルは、2行目4サイクル+3行目3(1)サイクル+4行目2サイクル+5行目4(3)サイクル+6行目5サイクル+7行目3サイクル=21(18)サイクルとなる。なお、括弧内のサイクル数は、コマンド「RET NTZ」「JCP NZ,・・・」によって移動しなかった場合の実行サイクルを示している。 Here, the total command size of the command group shown in FIG. 187(a) is 2 bytes of the command "LDQ HL, (LOW R_FDN_EFF)" on line 2 + 1 byte of the command "RET NTZ" on line 3 + 2 bytes of the command "LDQ A, (LOW R_FUT_PHS)" on line 4 + 3 bytes of the command "JCP NZ,A,@FD_OPN,FDN_CHK_10" on line 5 + 2 bytes of the command "INCQ (LOW R_FDN_CNT)" on line 6 + 1 byte of the command "RET" on line 7 = 11 bytes, and the total execution cycles are 4 cycles on line 2 + 3(1) cycles on line 3 + 2 cycles on line 4 + 4(3) cycles on line 5 + 5 cycles on line 6 + 3 cycles on line 7 = 21 (18) cycles. Note that the number of cycles in parentheses indicates the execution cycles if no movement is made using the commands "RET NTZ", "JCP NZ, ...".

一方、図187(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ HL,(LOW R_FDN_EFF)」2バイト+3行目のコマンド「RET NTZ」1バイト+4行目のコマンド「JCPQ NZ,(LOW R_FUT_PHS),@FD_OPN,FDN_CHK_10」4バイト+5行目のコマンド「INCQ (LOW R_FDN_CNT)」2バイト+6行目のコマンド「RET」1バイト=10バイトとなり、総実行サイクルは、2行目4サイクル+3行目3(1)サイクル+4行目6(5)サイクル+5行目5サイクル+6行目3サイクル=19(16)サイクルとなる。なお、括弧内のサイクル数は、コマンド「RET NZ」「JCPQ NTZ,・・・」によって移動しなかった場合の実行サイクルを示している。 On the other hand, the total command size of the command group shown in FIG. 187(b) is 2 bytes of the command "LDQ HL, (LOW R_FDN_EFF)" on the second line + 1 byte of the command "RET NTZ" on the third line + 4 bytes of the command "JCPQ NZ, (LOW R_FUT_PHS), @FD_OPN, FDN_CHK_10" on the fourth line + 2 bytes of the command "INCQ (LOW R_FDN_CNT)" on the fifth line + 1 byte of the command "RET" on the sixth line = 10 bytes, and the total execution cycles are 4 cycles on the second line + 3(1) cycles on the third line + 6(5) cycles on the fourth line + 5 cycles on the fifth line + 3 cycles on the sixth line = 19 (16) cycles. The number of cycles in parentheses indicates the execution cycles when no movement is made by the commands "RET NZ", "JCPQ NTZ, ...".

したがって、図187(a)のコマンド群を図187(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減され、総実行サイクルも少なくとも2サイクル削減される。かかる置き換えによって、コマンドの短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Therefore, by replacing the command group in FIG. 187(a) with the command group in FIG. 187(b), the total command size is reduced by 1 byte, and the total execution cycles are also reduced by at least 2 cycles. This replacement shortens the commands and reduces the processing load, making it possible to secure the capacity of the control area for performing game control processing.

また、図187(a)と図187(b)とを比較して理解できるように、図187(a)において2行(4行目~5行目)を占有していたコマンド群を、図187(b)においては1行(4行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 187(a) and 187(b), the command group that occupies two lines (lines 4 and 5) in Figure 187(a) can be represented in one line (line 4) in Figure 187(b), making it possible to reduce the number of commands and lighten the design load.

また、図187(b)の例では、Aレジスタを利用していない。したがって、Aレジスタの値を意図せず更新してしまうことはない。また、図187(a)の例では、Aレジスタが既に利用されている場合、スタックしてAレジスタの値を退避する必要があったが、ここでは、Aレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 In addition, in the example of FIG. 187(b), the A register is not used. Therefore, the value of the A register will not be updated unintentionally. Also, in the example of FIG. 187(a), if the A register was already in use, it was necessary to save the value of the A register by stacking, but here, since the A register is not used, stack processing is not required. In this way, resources can be used efficiently.

図188は、FZ_STPモジュールを実現するためのコマンドの一例を説明するための説明図である。図188に示したFZ_STPモジュールは、普通図柄停止図柄表示処理(図54参照)を実行する。 Figure 188 is an explanatory diagram for explaining an example of a command for realizing the FZ_STP module. The FZ_STP module shown in Figure 188 executes the normal symbol stop symbol display process (see Figure 54).

この普通図柄停止図柄表示処理として、図188(a)の1行目の指標「FZ_STP:」は、当該FZ_STPモジュールの先頭アドレスを示す。 For this normal symbol stop symbol display process, the index "FZ_STP:" on the first line of Figure 188 (a) indicates the starting address of the FZ_STP module.

そして、2行目のコマンド「RET NTZ」によって、第2ゼロフラグに1が立っていなければ、当該FZ_STPモジュールを終了する。 Then, the command "RET NTZ" on the second line will terminate the FZ_STP module if the second zero flag is not set to 1.

3行目のコマンド「LDQ A,(LOW R_FZ_ATA)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FZ_ATA」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスの値(普通図柄当たりフラグ)をAレジスタに読み出す。なお、普通図柄当たりフラグは、普図抽選で当たりが決定されると01Hになり、ハズレが決定されると00Hとなる。 The command on the third line, "LDQ A, (LOW R_FZ_ATA)," sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_FZ_ATA" to the lower byte of the address, and reads the value of that address (the normal symbol winning flag) into the A register. Note that the normal symbol winning flag becomes 01H when a winning regular symbol lottery result is determined, and becomes 00H when a losing regular symbol lottery result is determined.

4行目のコマンド「JCP Z,A,@FZ_ATA,FZ_STP_10」によって、Aレジスタに示される値(普通図柄当たりフラグ)と、当たりを示す固定値「@FZ_ATA」、ここでは01Hとを比較し、ゼロフラグに1が立っていれば、8行目の指標「FZ_STP_10」に示されるアドレスに移動する(処理を分岐させる)。 The command on line 4, "JCP Z,A,@FZ_ATA,FZ_STP_10", compares the value indicated in the A register (the normal symbol winning flag) with the fixed value "@FZ_ATA" indicating a win, here 01H, and if the zero flag is set to 1, it moves to the address indicated in the index "FZ_STP_10" on line 8 (branching the process).

一方、ゼロフラグに1が立っていなければ、5行目のコマンド「CLRQ (LOW R_FUT_PHS)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FUT_PHS」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(普通遊技管理フェーズ)に0を代入する(クリアする)。 On the other hand, if the zero flag is not set to 1, the command "CLRQ (LOW R_FUT_PHS)" on the fifth line sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_FUT_PHS" to the lower byte of the address, and assigns 0 to the value stored at that address (normal game management phase) (clears it).

6行目のコマンド「CLRQ (LOW R_FZ_STP)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FZ_STP」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(普通図柄停止図柄番号)に0を代入し(クリアし)、7行目のコマンド「RET」によって、当該FZ_STPモジュールを終了する。 The command "CLRQ (LOW R_FZ_STP)" on the sixth line makes the value of the Q register the upper byte of the address, the value of the lowest byte of the address "R_FZ_STP" becomes the lower byte of the address, the value stored at that address (normal symbol stop symbol number) is assigned 0 (cleared), and the command "RET" on the seventh line ends the FZ_STP module.

ここで、図188(a)のコマンド群を図188(b)のように変更することができる。ここでは、図188(a)と実質的に等しい処理についてはその説明を省略し、図188(b)の異なる処理のみを説明する。 The commands in FIG. 188(a) can be changed to those in FIG. 188(b). Here, we will omit the explanation of the processes that are essentially the same as those in FIG. 188(a), and only explain the different processes in FIG. 188(b).

図188(b)の3行目のコマンド「JCPQ Z,(LOW R_FZ_ATA),@FZ_ATA,FZ_STP_10」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_FZ_ATA」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスの値(普通図柄当たりフラグ)と、当たりを示す固定値「@FZ_ATA」、ここでは01Hとを比較し、ゼロフラグに1が立っていれば、7行目の指標「FZ_STP_10」に示されるアドレスに移動する(処理を分岐させる)。 The command "JCPQ Z, (LOW R_FZ_ATA), @FZ_ATA, FZ_STP_10" on the third line of Figure 188 (b) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "R_FZ_ATA" to the lower byte of the address, and compares the value of that address (normal symbol winning flag) with the fixed value "@FZ_ATA" indicating a win, 01H in this case. If the zero flag is set to 1, it moves to the address indicated by the index "FZ_STP_10" on the seventh line (branching the process).

ここで、図188(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「RET NTZ」1バイト+3行目のコマンド「LDQ A,(LOW R_FZ_ATA)」2バイト+4行目のコマンド「JCP Z,A,@FZ_ATA,FZ_STP_10」3バイト+5行目のコマンド「CLRQ (LOW R_FUT_PHS)」2バイト+6行目のコマンド「CLRQ (LOW R_FZ_STP)」2バイト+7行目のコマンド「RET」1バイト=11バイトとなり、総実行サイクルは、2行目3(1)サイクル+3行目2サイクル+4行目4(3)サイクル+5行目2サイクル+6行目2サイクル+7行目3サイクル=16(13)サイクルとなる。なお、括弧内のサイクル数は、コマンド「RET NTZ」「JCP Z,・・・」によって1つ上のルーチンに移動しなかった場合の実行サイクルを示している。 Here, the total command size of the command group shown in FIG. 188(a) is 1 byte of the command "RET NTZ" on line 2 + 2 bytes of the command "LDQ A, (LOW R_FZ_ATA)" on line 3 + 3 bytes of the command "JCP Z,A,@FZ_ATA,FZ_STP_10" on line 4 + 2 bytes of the command "CLRQ (LOW R_FUT_PHS)" on line 5 + 2 bytes of the command "CLRQ (LOW R_FZ_STP)" on line 6 + 1 byte of the command "RET" on line 7 = 11 bytes, and the total execution cycles are 3(1) cycles on line 2 + 2 cycles on line 3 + 4(3) cycles on line 4 + 2 cycles on line 5 + 2 cycles on line 6 + 3 cycles on line 7 = 16 (13) cycles. Note that the number of cycles in parentheses indicates the execution cycles if the command "RET NTZ", "JCP Z, ..." is not used to move to the higher routine.

一方、図188(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「RET NTZ」1バイト+3行目のコマンド「JCPQ Z,(LOW R_FZ_ATA),@FZ_ATA,FZ_STP_10」4バイト+4行目のコマンド「CLRQ (LOW R_FUT_PHS)」2バイト+5行目のコマンド「CLRQ (LOW R_FZ_STP)」2バイト+6行目のコマンド「RET」1バイト=10バイトとなり、総実行サイクルは、2行目3(1)サイクル+3行目6(5)サイクル+4行目2サイクル+5行目2サイクル+6行目3サイクル=16(13)サイクルとなる。なお、括弧内のサイクル数は、コマンド「RET NTZ」、「JCPQ Z,・・・」によって移動しなかった場合の実行サイクルを示している。 On the other hand, the total command size of the command group shown in FIG. 188(b) is 1 byte of the command "RET NTZ" on the second line + 4 bytes of the command "JCPQ Z, (LOW R_FZ_ATA), @FZ_ATA, FZ_STP_10" on the third line + 2 bytes of the command "CLRQ (LOW R_FUT_PHS)" on the fourth line + 2 bytes of the command "CLRQ (LOW R_FZ_STP)" on the fifth line + 1 byte of the command "RET" on the sixth line = 10 bytes, and the total execution cycle is 3(1) cycles on the second line + 6(5) cycles on the third line + 2 cycles on the fourth line + 2 cycles on the fifth line + 3 cycles on the sixth line = 16 (13) cycles. The number of cycles in parentheses indicates the execution cycle when no movement is made by the commands "RET NTZ", "JCPQ Z, ...".

したがって、図188(a)のコマンド群を図188(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減される。かかる置き換えによって、コマンドの短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Therefore, by replacing the command group in FIG. 188(a) with the command group in FIG. 188(b), the total command size is reduced by 1 byte. This replacement shortens the commands and makes it possible to secure the capacity of the control area for performing game control processing.

また、図188(a)と図188(b)とを比較して理解できるように、図188(a)において2行(3行目~4行目)を占有していたコマンド群を、図188(b)においては1行(3行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 188(a) and 188(b), the command group that occupies two lines (lines 3 and 4) in Figure 188(a) can be represented in one line (line 3) in Figure 188(b), making it possible to reduce the number of commands and lighten the design load.

また、図188(b)の例では、Aレジスタを利用していない。したがって、Aレジスタの値を意図せず更新してしまうことはない。また、図188(a)の例では、Aレジスタが既に利用されている場合、スタックしてAレジスタの値を退避する必要があったが、ここでは、Aレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 In addition, in the example of FIG. 188(b), the A register is not used. Therefore, the value of the A register will not be updated unintentionally. Also, in the example of FIG. 188(a), if the A register was already in use, it was necessary to save the value of the A register by stacking, but here, since the A register is not used, stack processing is not required. In this way, resources can be used efficiently.

<乱数発生器>
図189は、乱数発生器740~746の構成を説明するためのブロック図である。上記したように、メインCPU300a、500aには、複数の乱数発生器が設けられている。
<Random number generator>
189 is a block diagram for explaining the configuration of the random number generators 740 to 746. As described above, the main CPUs 300a, 500a are provided with a plurality of random number generators.

メインCPU300a、500aには、例えば、図189に示すように、16ビットの最大値を設定可能な乱数発生器である最大値設定乱数発生器740が4チャンネル、16ビットの最大値が65536に固定された乱数発生器である最大値固定乱数発生器742が4チャンネル、8ビットの最大値を設定可能な乱数発生器である最大値設定乱数発生器744が8チャンネル、8ビットの最大値が255に固定された乱数発生器である最大値固定乱数発生器746が8チャンネル設けられている。これらの乱数発生器740~746は、ハードウェア乱数発生器(ハードウェア乱数生成部)である。 For example, as shown in FIG. 189, the main CPU 300a, 500a is provided with four channels of maximum setting random number generators 740 which are random number generators capable of setting a 16-bit maximum value, four channels of fixed maximum value random number generators 742 which are random number generators whose 16-bit maximum value is fixed at 65536, eight channels of maximum setting random number generators 744 which are random number generators whose 8-bit maximum value can be set, and eight channels of fixed maximum value random number generators 746 which are random number generators whose 8-bit maximum value is fixed at 255. These random number generators 740 to 746 are hardware random number generators (hardware random number generation units).

最大値設定乱数発生器740は、乱数更新周期を32~47クロックのいずれかに設定可能であり、スタート値を、0001h、IDナンバーを基にした値、システムリセット毎に変更される値のいずれかに設定可能である。最大値固定乱数発生器742は、乱数更新周期が1クロックであり、スタート値がシステムリセット毎に変更される値である。なお、システムリセットは、ハード的に状態をリセットするものであり、電源投入時、所定の異常が発生したときに実行される。 The maximum value setting random number generator 740 can set the random number update period to any of 32 to 47 clocks, and the start value can be set to any of 0001h, a value based on the ID number, or a value that changes with each system reset. The maximum value fixed random number generator 742 has a random number update period of 1 clock, and the start value is a value that changes with each system reset. Note that a system reset resets the hardware state, and is executed when a specified abnormality occurs when the power is turned on.

最大値設定乱数発生器744は、乱数更新周期を16~31クロックのいずれかに設定可能であり、スタート値を、01h、IDナンバーを基にした値、システムリセット毎に変更される値のいずれかに設定可能である。最大値固定乱数発生器746は、乱数更新周期が1クロックであり、スタート値がシステムリセット毎に変更される値である。上記ステップS100-1の初期設定処理において、スタート値の設定および保存、最大値設定乱数発生器740、744の乱数更新周期の設定および保存が行われる。 The maximum value setting random number generator 744 can set the random number update period to any of 16 to 31 clocks, and the start value can be set to any of 01h, a value based on the ID number, or a value that changes with each system reset. The maximum value fixed random number generator 746 has a random number update period of 1 clock, and the start value is a value that changes with each system reset. In the initial setting process of step S100-1 above, the start value is set and saved, and the random number update periods of the maximum value setting random number generators 740 and 744 are set and saved.

また、これらの乱数発生器740~746は、システムリセット毎にスタート値が更新される。そして、最大値設定乱数発生器740は、ハードウェアにより、内部システムクロックの32クロック~47クロックのいずれかで1回、乱数(乱数カウンタ)を更新する。最大値設定乱数発生器744は、ハードウェアにより、内部システムクロックの16クロック~31クロックのいずれかで1回、乱数(乱数カウンタ)を更新する。最大値固定乱数発生器742、746は、ハードウェアにより、内部システムクロックの1クロックで1回、乱数(乱数カウンタ)を更新する。また、これらの乱数発生器740~746は、一定の規則に従って乱数を更新し、乱数列を一巡するごとに、自動的に乱数列が更新される。そして、ソフトウェアにより、遊技球が所定領域を通過したと判定されたときに、乱数値レジスタから乱数(ハードウェア乱数カウント値)が取得される。 The random number generators 740-746 update their start values every time the system is reset. The maximum value setting random number generator 740 updates the random number (random number counter) by hardware once every 32 to 47 clocks of the internal system clock. The maximum value setting random number generator 744 updates the random number (random number counter) by hardware once every 16 to 31 clocks of the internal system clock. The maximum value fixed random number generators 742 and 746 update the random number (random number counter) by hardware once every clock of the internal system clock. The random number generators 740-746 update their random numbers according to certain rules, and the random number sequence is automatically updated every time the random number sequence goes through one cycle. When the software determines that the game ball has passed through a specified area, the random number (hardware random number count value) is obtained from the random number value register.

また、メインCPU300a、500aでは、乱数発生器740~746から取得した乱数値に、プログラム内において所定の数値を乗じ、また、除算することでソフトウェア乱数を生成する(ソフトウェア乱数生成部)ことも可能である。ソフトウェア乱数生成部は、4ms毎に発生する割込み処理が実行されていない間に乱数を更新する。具体的には、ソフトウェア乱数生成部は、前回の乱数と最大値とを比較し、前回の乱数が最大値に達していた場合には乱数を0にし、前回の乱数が最大値に達していない場合には乱数を1加算する。そして、遊技球が所定領域を通過したと判定されたときに、乱数(ソフトウェア乱数カウント値)が取得される。 The main CPUs 300a, 500a can also generate software random numbers (software random number generation unit) by multiplying and dividing the random number values obtained from the random number generators 740-746 by a predetermined number within the program. The software random number generation unit updates the random numbers while the interrupt processing that occurs every 4 ms is not being executed. Specifically, the software random number generation unit compares the previous random number with the maximum value, and sets the random number to 0 if the previous random number has reached the maximum value, and adds 1 to the random number if the previous random number has not reached the maximum value. Then, when it is determined that the game ball has passed through the predetermined area, a random number (software random number count value) is obtained.

ここで、遊技機100では、乱数として、大当たり決定乱数、当たり図柄乱数、リーチグループ決定乱数、リーチモード決定乱数、変動パターン乱数、当たり決定乱数が設けられている。 Here, in the gaming machine 100, the following random numbers are provided: a jackpot determining random number, a winning symbol random number, a reach group determining random number, a reach mode determining random number, a variation pattern random number, and a winning random number.

大当たり決定乱数は0~65535の範囲であり、当たり図柄乱数は0~99の範囲であり、リーチグループ決定乱数は0~10006の範囲であり、リーチモード決定乱数は0~250の範囲であり、変動パターン乱数は0~238の範囲であり、当たり決定乱数は0~99の範囲である。 The random number for determining a jackpot is in the range of 0 to 65535, the random number for determining a winning symbol is in the range of 0 to 99, the random number for determining a reach group is in the range of 0 to 10006, the random number for determining a reach mode is in the range of 0 to 250, the random number for determining a fluctuation pattern is in the range of 0 to 238, and the random number for determining a win is in the range of 0 to 99.

また、普通図柄の当たり図柄を複数設ける場合には、普図図柄乱数を設ける必要があり、例えば、0~99の範囲となる。さらに、普通図柄の変動パターン(変動時間)を複数設ける場合には、普図変動パターン乱数を設ける必要があり、例えば、0~99の範囲となる。 In addition, if multiple winning normal symbols are provided, a normal symbol random number must be set, for example in the range of 0 to 99. Furthermore, if multiple normal symbol fluctuation patterns (fluctuation times) are provided, a normal symbol fluctuation pattern random number must be set, for example in the range of 0 to 99.

図190は、乱数生成部の組み合わせを説明する図である。例えば、大当たり決定乱数は、0~65535までの乱数を発生させる必要があるため、最大値を65535に設定した最大値設定乱数発生器740により生成された16ビットの乱数を用いる。当たり図柄乱数は、0~99までの乱数を発生させる必要があるため、最大値を99に設定したソフトウェア乱数生成部により生成された8ビットの乱数を用いる。 Figure 190 is a diagram explaining the combination of random number generators. For example, the jackpot determining random number needs to generate a random number between 0 and 65535, so a 16-bit random number generated by a maximum setting random number generator 740 with a maximum value set to 65535 is used. The winning symbol random number needs to generate a random number between 0 and 99, so an 8-bit random number generated by a software random number generator with a maximum value set to 99 is used.

リーチグループ決定乱数は、0~10006までの乱数を発生させる必要があるため、最大値を10006に設定した最大値設定乱数発生器740により生成された16ビットの乱数を用いる。リーチモード決定乱数は、0~250までの乱数を発生させる必要があるため、最大値を250に設定したソフトウェア乱数生成部により生成された8ビットの乱数を用いる。変動パターン乱数は、0~238までの乱数を発生させる必要があるため、最大値を238に設定したソフトウェア乱数生成部により生成された8ビットの乱数を用いる。 The reach group determination random number needs to generate random numbers between 0 and 10006, so a 16-bit random number generated by a maximum setting random number generator 740 with a maximum value set to 10006 is used. The reach mode determination random number needs to generate random numbers between 0 and 250, so an 8-bit random number generated by a software random number generation unit with a maximum value set to 250 is used. The fluctuation pattern random number needs to generate random numbers between 0 and 238, so an 8-bit random number generated by a software random number generation unit with a maximum value set to 238 is used.

当たり決定乱数は、0~99までの乱数を発生させる必要があるため、最大値を99に設定した最大値設定乱数発生器744により生成された8ビットの乱数を用いる。普図図柄乱数は、0~99までの乱数を発生させる必要があるため、最大値を99に設定したソフトウェア乱数生成部により生成された8ビットの乱数を用いる。普図変動パターン乱数は、0~99までの乱数を発生させる必要があるため、最大値を99に設定したソフトウェア乱数生成部により生成された8ビットの乱数を用いる。 The winning determination random number must generate a random number between 0 and 99, so an 8-bit random number generated by a maximum setting random number generator 744 with the maximum value set to 99 is used. The regular pattern random number must generate a random number between 0 and 99, so an 8-bit random number generated by a software random number generation unit with the maximum value set to 99 is used. The regular variation pattern random number must generate a random number between 0 and 99, so an 8-bit random number generated by a software random number generation unit with the maximum value set to 99 is used.

ここで、ソフトウェア乱数生成部により生成された乱数を用いる場合、図23のステップS100-61、図26のステップS400-17、図23のステップS100-69において、乱数の初期値を決定したり、乱数を更新する処理を実行する必要がある。そうすると、遊技制御処理を行うための制御領域の容量が圧迫されるおそれがある。 When using random numbers generated by a software random number generator, it is necessary to execute processes to determine the initial value of the random numbers and to update the random numbers in step S100-61 in FIG. 23, step S400-17 in FIG. 26, and step S100-69 in FIG. 23. This may put a strain on the capacity of the control area for performing game control processing.

そこで、図190(b)、(c)に示すように、例えば、大当たり決定乱数は0~65535の範囲とし、当たり図柄乱数は0~99の範囲とし、リーチグループ決定乱数は0~10006の範囲とし、リーチモード決定乱数は0~1000の範囲とし、変動パターン乱数は0~255の範囲とし、当たり決定乱数は0~65535の範囲とし、普図図柄乱数は0~99の範囲とし、普図変動パターン乱数は0~255の範囲とする。なお、これらの乱数の範囲は一例であり、最大値固定乱数発生器742の最大値である65535を最大値とした乱数、最大値固定乱数発生器746の最大値である255を最大値とした乱数をどの乱数に設定するようにしてもよい。 As shown in Figs. 190(b) and (c), for example, the jackpot determination random number is in the range of 0 to 65535, the winning pattern random number is in the range of 0 to 99, the reach group determination random number is in the range of 0 to 10006, the reach mode determination random number is in the range of 0 to 1000, the fluctuation pattern random number is in the range of 0 to 255, the winning determination random number is in the range of 0 to 65535, the normal pattern random number is in the range of 0 to 99, and the normal fluctuation pattern random number is in the range of 0 to 255. Note that these random number ranges are merely examples, and any random number may be set to any random number with a maximum value of 65535, which is the maximum value of the maximum value fixed random number generator 742, or a random number with a maximum value of 255, which is the maximum value of the maximum value fixed random number generator 746.

そして、図190(b)に示すように、大当たり決定乱数は、最大値を65535に設定した最大値設定乱数発生器740により生成された16ビットの乱数を用いる。当たり図柄決定乱数は、最大値が99に設定された最大値設定乱数発生器740により生成された8ビットの乱数を用いる。リーチグループ決定乱数は、最大値が10006に設定された最大値設定乱数発生器740により生成された16ビットの乱数を用いる。リーチモード決定乱数は、最大値を1000に設定した最大値設定乱数発生器により生成された16ビットの乱数を用いる。変動パターン乱数は、最大値が255に固定された最大値固定乱数発生器746により生成された8ビットの乱数を用いる。 As shown in FIG. 190(b), the jackpot determination random number uses a 16-bit random number generated by a maximum setting random number generator 740 with a maximum value set to 65535. The winning symbol determination random number uses an 8-bit random number generated by a maximum setting random number generator 740 with a maximum value set to 99. The reach group determination random number uses a 16-bit random number generated by a maximum setting random number generator 740 with a maximum value set to 10006. The reach mode determination random number uses a 16-bit random number generated by a maximum setting random number generator with a maximum value set to 1000. The variable pattern random number uses an 8-bit random number generated by a fixed maximum value random number generator 746 with a maximum value fixed to 255.

当たり決定乱数は、最大値を65535に設定した最大値設定乱数発生器740により生成された16ビットの乱数を用いる。普図図柄乱数は、最大値を99に設定した最大値設定乱数発生器744により生成された8ビットの乱数を用いる。普図変動パターン乱数は、最大値が255に固定された最大値固定乱数発生器746により生成された8ビットの乱数を用いる。 The winning random number uses a 16-bit random number generated by a maximum setting random number generator 740 with a maximum value set to 65535. The regular pattern random number uses an 8-bit random number generated by a maximum setting random number generator 744 with a maximum value set to 99. The regular variable pattern random number uses an 8-bit random number generated by a fixed maximum value random number generator 746 with a maximum value fixed to 255.

また、図190(c)に示すように、大当たり決定乱数および当たり決定乱数は、最大値が65535に固定された最大値固定乱数発生器742により生成された16ビットの乱数を用いてもよい。最大値設定乱数発生器740は、スタート値、乱数更新周期、乱数の最大値等を適宜設定可能であるが、最大値固定乱数発生器742よりも乱数更新周期が遅い。そのため、遊技者の利益に直結する当否乱数(大当たり決定乱数および当たり決定乱数)については、乱数更新周期が早く、乱数の読み取りがされ辛い最大値固定乱数発生器742を用いるとよい。 Also, as shown in FIG. 190(c), the jackpot determining random number and the win determining random number may use 16-bit random numbers generated by a fixed maximum random number generator 742 with a maximum value fixed at 65535. The maximum setting random number generator 740 allows the start value, random number update period, maximum random number value, etc. to be set as appropriate, but has a slower random number update period than the fixed maximum random number generator 742. Therefore, for the win/lose random numbers (jackpot determining random numbers and win determining random numbers) that are directly linked to the player's profits, it is better to use the fixed maximum random number generator 742, which has a fast random number update period and makes the random numbers difficult to read.

このように、遊技の進行に用いられる複数の乱数に、乱数発生器740~746(ハードウェア乱数生成部)により生成された乱数を用いることにより、上記した図23のステップS100-61、図26のステップS400-17、図23のステップS100-69において、乱数の初期値を決定したり、乱数を更新する処理を実行する必要がなくなる。これにより、約35バイトのメインROM300bの容量を削減することができるとともに、約4バイトのメインRAM300cの容量を削減することができる。かくして、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 In this way, by using random numbers generated by random number generators 740-746 (hardware random number generation unit) for multiple random numbers used in the progress of the game, it becomes unnecessary to determine the initial value of the random numbers or execute the process of updating the random numbers in step S100-61 of FIG. 23, step S400-17 of FIG. 26, and step S100-69 of FIG. 23 described above. This makes it possible to reduce the capacity of the main ROM 300b by approximately 35 bytes and to reduce the capacity of the main RAM 300c by approximately 4 bytes. It is thus possible to secure the capacity of the control area for performing game control processing.

<コマンド「OR」>
図191は、SMC_ROTモジュールの具体的な処理を示したフローチャートである。ここでは、任意の処理として、定常回転中処理を実行するSMC_ROTモジュールの一部である、インデックスフラグに、リールの位置を示すフェーズフラグを合成する処理を挙げて説明する。ここで、インデックスフラグは、リール410a、410b、410cが定常回転の速度となった後、インデックス信号を取得したときにONされる1バイト値で表されるフラグである。例えば、左リール410aのインデックス信号を取得するとインデックスフラグのビット0が1となり、中リール410bのインデックス信号を取得するとインデックスフラグのビット1が1となり、右リール410cのインデックス信号を取得するとインデックスフラグのビット2が1となる。かかるインデックスフラグを参照することで、いずれのリール410a、410b、410cがインデックス信号を取得済みか確認することが可能となる。また、フェーズフラグは、処理中であるリール410a、410b、410cを特定する1バイトで示されるフラグである。例えば、左リール410aの処理中はフェーズフラグのビット0が1となり(00000001B)、中リール410bの処理中はフェーズフラグのビット1が1となり(00000010B)、右リール410cの処理中はフェーズフラグのビット2が1となる(00000100B)。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。また、当該SMC_ROTモジュールの説明中、第1レジスタはCレジスタであり、第2レジスタはHLレジスタであり、第1レジスタおよび第2レジスタと異なるレジスタはAレジスタである。
<Command "OR">
FIG. 191 is a flowchart showing the specific processing of the SMC_ROT module. Here, as an optional processing, a processing of synthesizing a phase flag indicating the position of a reel with an index flag, which is a part of the SMC_ROT module that executes a processing during steady rotation, will be described. Here, the index flag is a flag represented by a 1-byte value that is turned ON when an index signal is acquired after the reels 410a, 410b, and 410c reach a steady rotation speed. For example, when an index signal of the left reel 410a is acquired, bit 0 of the index flag becomes 1, when an index signal of the center reel 410b is acquired, bit 1 of the index flag becomes 1, and when an index signal of the right reel 410c is acquired, bit 2 of the index flag becomes 1. By referring to such index flags, it is possible to confirm which of the reels 410a, 410b, and 410c has acquired an index signal. Also, the phase flag is a flag represented by 1 byte that specifies the reels 410a, 410b, and 410c that are being processed. For example, when the left reel 410a is being processed, bit 0 of the phase flag becomes 1 (00000001B), when the center reel 410b is being processed, bit 1 of the phase flag becomes 1 (00000010B), and when the right reel 410c is being processed, bit 2 of the phase flag becomes 1 (00000100B). The numerical values of step S in this figure are used only in the explanation of this figure. In addition, in the explanation of the SMC_ROT module, the first register is the C register, the second register is the HL register, and the register different from the first and second registers is the A register.

かかるSMC_ROTモジュールを実行する段階では、既に、所定のレジスタ(例えば、Cレジスタ)にフェーズフラグの値が保持されているとする。そして、メインCPU500aは、図191のように、任意の処理を実行する。メインCPU500aは、まず、HLレジスタに、論理和の対象となるインデックスフラグ(変数)のアドレスを設定する(S1)。そして、メインCPU500aは、インデックスフラグにフェーズフラグを合成するため、既に設定されているCレジスタの値(フェーズフラグ)と、HLレジスタで示されるアドレスに格納された1バイト値との論理和を計算し、論理和の結果を、インデックスフラグに反映するために、HLレジスタで示されるアドレスに格納されている値に上書きする(S2)。ここで、合成は、変数であるフェーズフラグのいずれかのビットが立っていると(1であれば)、インデックスフラグの同ビットも立たせる(1にする)ことを言う。したがって、処理中のリール410a、410b、410cについてはフェーズフラグが立っているので、インデックス信号の取得有無に拘わらず、合成により、インデックスフラグの該当ビットが立つこととなる。また、全てのインデックス信号が取得されると(全リール410a、410b、410cが定常回転速度となると)、フェーズフラグに拘わらず、インデックスフラグの各リールに相当するビットが全て立つ(00000111B)こととなる。そして、励磁パターン更新前処理を実行するPRE_PLSモジュールに移動することで当該SMC_ROTモジュールを終了する(S3)。こうして、インデックスフラグにフェーズフラグを合成することが可能となる。 At the stage of executing such an SMC_ROT module, the value of the phase flag is already held in a predetermined register (for example, the C register). Then, the main CPU 500a executes an arbitrary process as shown in FIG. 191. First, the main CPU 500a sets the address of the index flag (variable) to be subjected to the logical sum in the HL register (S1). Then, in order to synthesize the phase flag with the index flag, the main CPU 500a calculates the logical sum between the value (phase flag) already set in the C register and the 1-byte value stored in the address indicated by the HL register, and overwrites the value stored in the address indicated by the HL register with the result of the logical sum in order to reflect it in the index flag (S2). Here, synthesis means that if any bit of the phase flag, which is a variable, is set (if it is 1), the same bit of the index flag is also set (set to 1). Therefore, since the phase flag is set for the reels 410a, 410b, and 410c being processed, the corresponding bit of the index flag will be set by synthesis regardless of whether an index signal is acquired or not. Furthermore, when all index signals are acquired (when all reels 410a, 410b, 410c reach a steady rotation speed), all bits corresponding to each reel in the index flag are set (00000111B) regardless of the phase flag. Then, the SMC_ROT module is terminated by moving to the PRE_PLS module that executes the excitation pattern update pre-processing (S3). In this way, it is possible to combine the index flag with the phase flag.

図192は、SMC_ROTモジュールを実現するためのコマンドの一例を説明するための説明図である。図191で示したフローチャートは、例えば、図192に示したプログラムによって実現される。 Figure 192 is an explanatory diagram for explaining an example of a command for implementing the SMC_ROT module. The flowchart shown in Figure 191 is implemented, for example, by the program shown in Figure 192.

図192の1行目の指標「SMC_ROT:」は、当該SMC_ROTモジュールの先頭アドレスを示す。2行目のコマンド「LDQ HL,LOW _IDX_FND」によって、Qレジスタの値をHレジスタに読み出し、アドレス「_IDX_FND」の下位1バイトの値をLレジスタに読み出す。かかる2行目のコマンドが、図191のステップS1に対応する。 The index "SMC_ROT:" on the first line of FIG. 192 indicates the starting address of the SMC_ROT module. The command "LDQ HL, LOW _IDX_FND" on the second line reads the value of the Q register into the H register, and reads the value of the lowest byte of the address "_IDX_FND" into the L register. This command on the second line corresponds to step S1 in FIG. 191.

図192の3行目のコマンド「LD A,(HL)」によって、HLレジスタで示されるアドレスに格納された1バイト値(インデックスフラグの値)がAレジスタに読み出される。4行目のコマンド「OR A,C」によって、Aレジスタの値とCレジスタの値の論理和が計算され、その計算結果によってAレジスタが更新される。そして、5行目のコマンド「LD (HL),A」によって、Aレジスタの値をHLレジスタで示されるアドレスに格納する。すなわち、Aレジスタの値を、HLレジスタで示されるアドレスに格納された1バイト値に上書きし、インデックスフラグの値を更新する。かかる3~5行目のコマンドが、図191のステップS2に対応する。 The command "LD A, (HL)" on line 3 of Figure 192 reads a one-byte value (the value of the index flag) stored at the address indicated by the HL register into the A register. The command "OR A, C" on line 4 calculates the logical OR of the values in the A register and the C register, and updates the A register with the result of this calculation. Then, the command "LD (HL), A" on line 5 stores the value of the A register at the address indicated by the HL register. In other words, the value of the A register overwrites the one-byte value stored at the address indicated by the HL register, updating the value of the index flag. These commands on lines 3 to 5 correspond to step S2 in Figure 191.

図192の6行目のコマンド「JP PRE_PLS」によって、PRE_PLSモジュールの先頭アドレスを示す指標「PRE_PLS:」に移動する。かかる6行目のコマンドが、図191のステップS3に対応する。 The command "JP PRE_PLS" on the sixth line of FIG. 192 moves to the index "PRE_PLS:" that indicates the start address of the PRE_PLS module. This command on the sixth line corresponds to step S3 in FIG. 191.

このように、図192に示したSMC_ROTモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LDQ HL,LOW _IDX_FND」2バイト+3行目のコマンド「LD A,(HL)」1バイト+4行目のコマンド「OR A,C」1バイト+5行目のコマンド「LD (HL),A」1バイト+6行目のコマンド「JP PRE_PLS」3バイト=8バイトとなり、総実行サイクルは、2行目2サイクル+3行目2サイクル+4行目1サイクル+5行目2サイクル+6行目3サイクル=10サイクルとなる。かかるSMC_ROTモジュールにおいて3~5行目の処理を設けることによって、変数として格納されているインデックスフラグとフェーズフラグとを容易に合成(論理和)することが可能となる。 In this way, the total command size of the SMC_ROT module commands shown in FIG. 192 is 2 bytes of the command "LDQ HL,LOW _IDX_FND" on line 2 + 1 byte of the command "LD A, (HL)" on line 3 + 1 byte of the command "OR A,C" on line 4 + 1 byte of the command "LD (HL), A" on line 5 + 3 bytes of the command "JP PRE_PLS" on line 6 = 8 bytes, and the total execution cycles are 2 cycles on line 2 + 2 cycles on line 3 + 1 cycle on line 4 + 2 cycles on line 5 + 3 cycles on line 6 = 10 cycles. By providing the processing on lines 3 to 5 in the SMC_ROT module, it becomes possible to easily combine (logical OR) the index flag and phase flag stored as variables.

図193は、SMC_ROTモジュールを実現するためのコマンドの他の例を説明するための説明図である。ここでは、図192のSMC_ROTモジュールのコマンド群を、図193のSMC_ROTモジュールのコマンド群に置き換えている。 Figure 193 is an explanatory diagram for explaining another example of commands for implementing the SMC_ROT module. Here, the command group of the SMC_ROT module in Figure 192 is replaced with the command group of the SMC_ROT module in Figure 193.

図193の1行目の指標「SMC_ROT:」は、当該SMC_ROTモジュールの先頭アドレスを示す。2行目のコマンド「LDQ HL,LOW _IDX_FND」によって、Qレジスタの値をHレジスタに読み出し、アドレス「_IDX_FND」の下位1バイトの値をLレジスタに読み出す。 The index "SMC_ROT:" on the first line of Figure 193 indicates the starting address of the SMC_ROT module. The command "LDQ HL, LOW _IDX_FND" on the second line reads the value of the Q register into the H register, and reads the value of the lowest byte of the address "_IDX_FND" into the L register.

図193の3行目のコマンド「OR (HL),C」によって、HLレジスタで示されるアドレスに格納された1バイト値と、Cレジスタの値との論理和が計算され、その計算結果をHLレジスタで示されるアドレスに格納する。すなわち、計算結果を、HLレジスタで示されるアドレスに格納された1バイト値に上書きし、インデックスフラグの値を更新する。かかる3行目のコマンドが、図191のステップS2に対応する。 The command "OR (HL), C" on the third line of Fig. 193 calculates the logical sum of the one-byte value stored at the address indicated by the HL register and the value of the C register, and stores the result of this calculation at the address indicated by the HL register. In other words, the result of the calculation is overwritten onto the one-byte value stored at the address indicated by the HL register, and the value of the index flag is updated. This command on the third line corresponds to step S2 in Fig. 191.

図193の4行目のコマンド「JP PRE_PLS」によって、PRE_PLSモジュールの先頭アドレスを示す指標「PRE_PLS:」に移動する。かかる4行目のコマンドが、図191のステップS3に対応する。 The command "JP PRE_PLS" on the fourth line of FIG. 193 moves to the index "PRE_PLS:" that indicates the start address of the PRE_PLS module. This command on the fourth line corresponds to step S3 in FIG. 191.

図193に示したSMC_ROTモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LDQ HL,LOW _IDX_FND」2バイト+3行目のコマンド「OR (HL),C」2バイト+4行目のコマンド「JP PRE_PLS」3バイト=7バイトとなり、総実行サイクルは、2行目2サイクル+3行目5サイクル+4行目3サイクル=10サイクルとなる。したがって、図192の場合と比べ、総コマンドサイズが1バイト削減される。かかるSMC_ROTモジュールによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 The total command size of the commands of the SMC_ROT module shown in FIG. 193 is 2 bytes of the command "LDQ HL,LOW _IDX_FND" on the second line + 2 bytes of the command "OR (HL),C" on the third line + 3 bytes of the command "JP PRE_PLS" on the fourth line = 7 bytes, and the total execution cycle is 2 cycles on the second line + 5 cycles on the third line + 3 cycles on the fourth line = 10 cycles. Therefore, compared to the case of FIG. 192, the total command size is reduced by 1 byte. This SMC_ROT module makes it possible to further shorten the commands and secure the capacity of the control area for performing game control processing.

また、図192と図193とを比較して理解できるように、図192において3行(3行目~5行目)を占有していたコマンド群を、図193においては1行(3行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 192 and 193, the command group that occupies three lines (lines 3 to 5) in Figure 192 can be represented in one line (line 3) in Figure 193, making it possible to reduce the number of commands and lighten the design load.

なお、ここでは、論理和を実行するコマンド「OR (HL),C」を挙げて説明したが、かかる場合に限らず、論理積を実行するコマンド「AND (HL),C」や排他的論理和「XOR (HL),C」であっても、論理和同様の置き換えができ、総コマンドサイズを1バイト削減することができる。また、変数のアドレスを格納するレジスタはHLレジスタに限らずDEレジスタでもよい。さらに、論理和の対象となるレジスタはCレジスタに限らず、Aレジスタ、Bレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタを採用することもできる。 Note that, although the command "OR (HL), C" which executes a logical sum has been described here, this is not limited to the case, and the command "AND (HL), C" which executes a logical product or "XOR (HL), C" which executes an exclusive logical sum can also be substituted in the same way as a logical sum, and the total command size can be reduced by one byte. Also, the register which stores the address of the variable is not limited to the HL register, but can also be the DE register. Furthermore, the register which is the target of the logical sum is not limited to the C register, but can also be the A register, B register, D register, E register, H register, or L register.

また、ここでは、図192の例と比較して、Aレジスタを利用していない。したがって、Aレジスタの値を意図せず更新してしまうことはない。また、図192の例では、Aレジスタが既に利用されている場合、スタックしてAレジスタの値を退避する必要があったが、ここでは、Aレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 In addition, unlike the example in FIG. 192, the A register is not used here. Therefore, the value of the A register will not be updated unintentionally. Also, in the example in FIG. 192, if the A register was already in use, it was necessary to save the value of the A register by stacking, but here, since the A register is not used, stack processing is not required. In this way, resources can be used efficiently.

<コマンド「LDF」>
図194は、INITIALモジュールの具体的な処理を示したフローチャートである。ここでは、任意の処理として、図82のステップS2000で示したCPU初期化処理を実行するINITIALモジュールの一部である内蔵レジスタエリア設定処理を挙げて説明する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。また、当該INITIALモジュールの説明中、第1レジスタはHLレジスタである。
<Command "LDF">
Fig. 194 is a flow chart showing the specific processing of the INITIAL module. Here, as an optional processing, the built-in register area setting processing, which is a part of the INITIAL module that executes the CPU initialization processing shown in step S2000 of Fig. 82, will be explained. The numerical values of step S in this figure will be used only in the explanation of this figure. In addition, in the explanation of this INITIAL module, the first register is the HL register.

メインCPU500aは、図194のように、任意の処理を実行する。メインCPU500aは、まず、HLレジスタに、CPU内蔵レジスタ設定データテーブル(データテーブル)の先頭アドレスを設定する(S1)。そして、メインCPU500aは設定データ数を設定する(S2)。 The main CPU 500a executes an arbitrary process as shown in FIG. 194. First, the main CPU 500a sets the top address of the CPU built-in register setting data table (data table) in the HL register (S1). Then, the main CPU 500a sets the number of setting data (S2).

続いて、メインCPU500aは、入出力部を通じてアクセス可能な内蔵レジスタのアドレスおよび設定データをそれぞれCレジスタおよびAレジスタに設定する(S3)。次に、Cレジスタで示される内蔵レジスタに、Aレジスタの値(設定データ)を出力する(S4)。続いて、メインCPU500aは、Bレジスタの値(設定データ数)をデクリメント(「1」減算)し、デクリメントした結果が0であるか否か判定する(S5)。ここで、デクリメントした結果が0でなければ(S5におけるNO)、ステップS3からの処理を繰り返し、デクリメントした結果が0であれば(S5におけるYES)、次の処理に移行する。 Then, the main CPU 500a sets the address and setting data of the built-in register accessible through the input/output unit in the C register and the A register, respectively (S3). Next, the value of the A register (setting data) is output to the built-in register indicated by the C register (S4). Next, the main CPU 500a decrements (subtracts "1") the value of the B register (the number of setting data), and determines whether the result of the decrement is 0 or not (S5). Here, if the result of the decrement is not 0 (NO in S5), the process from step S3 is repeated, and if the result of the decrement is 0 (YES in S5), the process proceeds to the next step.

図195は、INITIALモジュールを実現するためのコマンドの一例を説明するための説明図である。このうち、図195(a)は、INITIALモジュールのコマンド群を示し、図195(b)は、メインROM500bのプログラムデータにおける1バイトデータ群の配置を示す。図194で示したフローチャートは、例えば、図195に示したプログラムによって実現される。 Figure 195 is an explanatory diagram for explaining an example of commands for implementing the INITIAL module. Of these, Figure 195(a) shows the command group of the INITIAL module, and Figure 195(b) shows the arrangement of 1-byte data groups in the program data of main ROM 500b. The flowchart shown in Figure 194 is implemented, for example, by the program shown in Figure 195.

図195(a)の1行目の指標「INITIAL:」は、当該INITIALモジュールの先頭アドレスを示す。2行目のコマンド「LD HL,T_CPU_REG」によって、CPU内蔵レジスタ設定データテーブルの先頭アドレス「T_CPU_REG」がHLレジスタに読み出される。かかる2行目のコマンドが、図194のステップS1に対応する。3行目のコマンド「LD B,@NUM_CPU_REG」によって、アドレス「@NUM_CPU_REG」に格納されている設定データ数がBレジスタに読み出される。かかる3行目のコマンドが、図194のステップS2に対応する。 The index "INITIAL:" on the first line of FIG. 195(a) indicates the starting address of the INITIAL module. The command "LD HL, T_CPU_REG" on the second line reads the starting address "T_CPU_REG" of the CPU built-in register setting data table into the HL register. This command on the second line corresponds to step S1 in FIG. 194. The command "LD B, @NUM_CPU_REG" on the third line reads the number of setting data stored at the address "@NUM_CPU_REG" into the B register. This command on the third line corresponds to step S2 in FIG. 194.

なお、図195(b)の22行目を参照して理解できるように、アドレス「@NUM_CPU_REG」には、コマンド「EQU ($-T_CPU_REG)/2」が記載されている。ここで、「$」は、転送元となる1バイトデータ群の最終アドレスの次のアドレス、すなわち、アドレス「@NUM_CPU_REG」自体であり、「T_CPU_REG」は転送元となる1バイトデータ群の先頭アドレスなので、$-T_CPU_REGの値(データ数を示す1バイト値)の値が、1バイト値の総バイト数となり、その値を、アドレスと値との組み合わせ数である2で除算すると、設定データ数が導出される。例えば、図195(b)の例では、設定データ数は20/2=10となる。 As can be seen by referring to line 22 of FIG. 195(b), the address "@NUM_CPU_REG" contains the command "EQU ($-T_CPU_REG)/2". Here, "$" is the address next to the final address of the 1-byte data group that is the source of transfer, i.e., the address "@NUM_CPU_REG" itself, and "T_CPU_REG" is the first address of the 1-byte data group that is the source of transfer, so the value of $-T_CPU_REG (the 1-byte value indicating the number of data) is the total number of bytes of the 1-byte value, and the number of set data is derived by dividing this value by 2, which is the number of combinations of addresses and values. For example, in the example of FIG. 195(b), the number of set data is 20/2=10.

図195(a)の4行目の指標「INITIAL01:」は繰り返し処理の先頭アドレスを示す。5行目のコマンド「LDIN AC,(HL)」によって、HLレジスタで示されるアドレスに格納された値がCレジスタに格納され、HLレジスタに「1」を加えた値で示されるアドレスに格納された値がAレジスタに格納される。かかる5行目のコマンドが、図194のステップS3に対応する。6行目のコマンド「OUT (C),A」によって、Cレジスタで示される値(内蔵レジスタ)に、Aレジスタの値(設定データ)が出力される。かかる6行目のコマンドが、図194のステップS4に対応する。 The index "INITIAL01:" on the fourth line of FIG. 195(a) indicates the start address of the repeat process. The command "LDIN AC, (HL)" on the fifth line stores the value stored in the address indicated by the HL register in the C register, and stores the value stored in the address indicated by the value of the HL register plus "1" in the A register. This command on the fifth line corresponds to step S3 in FIG. 194. The command "OUT (C), A" on the sixth line outputs the value of the A register (setting data) to the value indicated by the C register (built-in register). This command on the sixth line corresponds to step S4 in FIG. 194.

例えば、HLレジスタがアドレス「T_CPU_REG」の値であった場合、図195(b)の2行目における1バイト値「@PT0PR__」がCレジスタに格納され、図195(b)の3行目における「120」の値がAレジスタに格納される。そして、Cレジスタの値、すなわち「@PT0PR__」で示されるアドレスに、Aレジスタの値、すなわち、「120」の値を出力する。 For example, if the HL register is the value of address "T_CPU_REG", the 1-byte value "@PT0PR___" on the second line of FIG. 195(b) is stored in the C register, and the value "120" on the third line of FIG. 195(b) is stored in the A register. Then, the value of the A register, i.e., the value "120", is output to the address indicated by the value of the C register, i.e., "@PT0PR___".

続いて、図195(a)の7行目のコマンド「DJNZ INITIAL01」によって、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0でなければ、アドレス「INITIAL01」に移動し、デクリメントした結果が0であれば、当該コマンドの次のコマンドに処理を移す。ここでは、データ数が「10」なので、「INITIAL01」からの処理を10回繰り返すとBレジスタの値が0となる。かかる7行目のコマンドが、図194のステップS5に対応する。 Next, the command "DJNZ INITIAL01" on line 7 of Figure 195(a) decrements the value of the B register (subtracts "1"), and if the result of the decrement is not 0, it moves to address "INITIAL01", and if the result of the decrement is 0, it moves to the next command after that command. In this case, the number of data items is "10", so after repeating the process from "INITIAL01" 10 times, the value of the B register will become 0. This command on line 7 corresponds to step S5 in Figure 194.

このように、図195(a)に示したINITIALモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LD HL,T_CPU_REG」3バイト+3行目のコマンド「LD B,@NUM_CPU_REG」2バイト+5行目のコマンド「LDIN AC,(HL)」2バイト+6行目のコマンド「OUT (C),A」2バイト+7行目のコマンド「DJNZ INITIAL01」2バイト=11バイトとなり、総実行サイクルは、2行目3サイクル+3行目2サイクル+5行目4サイクル+6行目3サイクル+7行目3サイクル(2サイクル)=15サイクル(14サイクル)となる。なお、括弧内のサイクル数は、コマンド「DJNZ INITIAL01」によって移動しなかった場合の実行サイクルを示している。なお、ここでは、設定データ数=10なので、5~7行目のコマンドが10回繰り返されることとなる。したがって、実際の総実行サイクルは、2行目3サイクル+3行目2サイクル+(5行目4サイクル+6行目3サイクル+7行目3サイクル)×9ループ+(5行目4サイクル+6行目3サイクル+7行目2サイクル)=104サイクルとなる。かかるINITIALモジュールによって、内部レジスタに設定データを設定することができる。 In this way, the total command size of the INITIAL module commands shown in FIG. 195(a) is 3 bytes of the command "LD HL, T_CPU_REG" on line 2 + 2 bytes of the command "LD B, @NUM_CPU_REG" on line 3 + 2 bytes of the command "LD IN AC, (HL)" on line 5 + 2 bytes of the command "OUT (C), A" on line 6 + 2 bytes of the command "DJNZ INITIAL01" on line 7 = 11 bytes, and the total execution cycle is 3 cycles on line 2 + 2 cycles on line 3 + 4 cycles on line 5 + 3 cycles on line 6 + 3 cycles on line 7 (2 cycles) = 15 cycles (14 cycles). The number of cycles in parentheses indicates the execution cycle when there is no movement by the command "DJNZ INITIAL01". Note that here, since the number of set data = 10, the commands on lines 5 to 7 are repeated 10 times. Therefore, the actual total execution cycles are 3 cycles for line 2 + 2 cycles for line 3 + (4 cycles for line 5 + 3 cycles for line 6 + 3 cycles for line 7) x 9 loops + (4 cycles for line 5 + 3 cycles for line 6 + 2 cycles for line 7) = 104 cycles. This INITIAL module allows you to set the configuration data in the internal register.

図196は、INITIALモジュールを実現するためのコマンドの他の例を説明するための説明図である。ここでは、図195(a)のINITIALモジュールのコマンド群を、図196(a)のINITIALモジュールのコマンド群に置き換えており、他の、図195(b)のメインROM500bのプログラムデータにおける1バイトデータ群は、図196(b)として、そのまま用いている。 Figure 196 is an explanatory diagram for explaining another example of commands for implementing the INITIAL module. Here, the commands of the INITIAL module in Figure 195(a) are replaced with the commands of the INITIAL module in Figure 196(a), and the other 1-byte data groups in the program data of main ROM 500b in Figure 195(b) are used as is as in Figure 196(b).

図196(a)の1行目の指標「INITIAL:」は、当該INITIALモジュールの先頭アドレスを示す。2行目のコマンド「LDF HL,T_CPU_REG」によって、CPU内蔵レジスタ設定データテーブルの先頭アドレス「T_CPU_REG」がHLレジスタに読み出される。かかる2行目のコマンドが、図194のステップS1に対応する。 The index "INITIAL:" on the first line of FIG. 196(a) indicates the start address of the INITIAL module. The command "LDF HL, T_CPU_REG" on the second line reads the start address "T_CPU_REG" of the CPU built-in register setting data table into the HL register. This command on the second line corresponds to step S1 in FIG. 194.

ここで、コマンド「LDF HL,mn」は、「mn」の値をHLレジスタに格納するコマンドである。かかるコマンドのコマンドサイズは「2」であり、実行サイクルは「2」である。一方、一般的に用いられるロードコマンド「LD HL,mn」も「mn」の値をHLレジスタに格納するコマンドであるが、そのコマンドのコマンドサイズは「3」であり、実行サイクルは「3」である。したがって、mnがメモリマップ上の1200H~1DFFHの範囲であり、かつ、HLレジスタにロードすることを条件に、「LD」を「LDF」に変更することで、コマンドサイズが1バイト削減され、実行サイクルも1サイクル削減される。 Here, the command "LDF HL, mn" is a command that stores the value of "mn" in the HL register. The command size of this command is "2", and the execution cycle is "2". On the other hand, the commonly used load command "LD HL, mn" is also a command that stores the value of "mn" in the HL register, but the command size of this command is "3", and the execution cycle is "3". Therefore, by changing "LD" to "LDF", on the condition that mn is in the range of 1200H to 1DFFH on the memory map and is loaded into the HL register, the command size is reduced by 1 byte and the execution cycle is also reduced by 1 cycle.

このように、コマンド「LDF HL,mn」におけるmnの値は、メモリマップにおける1200H~1DFFHのいずれかでなければならない。そこで、本実施形態では、メインROM500bの使用領域における1200H~1DFFHの範囲にプログラムデータを配置し、かかる範囲のデータを読み出す場合にのみコマンド「LDF HL,mn」を用いることとする。なお、「LDF HL,1200H」のアセンブルコードは、対象となるアドレス「1200H」に5800Hを加算した6A00Hと表される。したがって、「LDF HL,1200H」~「LDF HL,1DFFH」のアセンブルコードは、6A00H~75FFHとなる。 Thus, the value of mn in the command "LDF HL, mn" must be one of 1200H to 1DFFH in the memory map. Therefore, in this embodiment, program data is placed in the range of 1200H to 1DFFH in the used area of main ROM 500b, and the command "LDF HL, mn" is used only when reading data in this range. The assembly code for "LDF HL, 1200H" is expressed as 6A00H, which is the target address "1200H" plus 5800H. Therefore, the assembly code for "LDF HL, 1200H" to "LDF HL, 1DFFH" is 6A00H to 75FFH.

図196(a)の3行目のコマンド「LD B,@NUM_CPU_REG」によって、アドレス「@NUM_CPU_REG」に格納されている設定データ数がBレジスタに読み出される。かかる3行目のコマンドが、図194のステップS2に対応する。 The command "LD B, @NUM_CPU_REG" on the third line of FIG. 196(a) reads the number of setting data stored at the address "@NUM_CPU_REG" into the B register. This command on the third line corresponds to step S2 in FIG. 194.

図196(a)の4行目の指標「INITIAL01:」は繰り返し処理の先頭アドレスを示す。5行目のコマンド「LDIN AC,(HL)」によって、HLレジスタで示されるアドレスに格納された値がCレジスタに格納され、HLレジスタに「1」を加えた値で示されるアドレスに格納された値がAレジスタに格納される。かかる5行目のコマンドが、図194のステップS3に対応する。6行目のコマンド「OUT (C),A」によって、Cレジスタで示される値(内蔵レジスタ)に、Aレジスタの値(設定データ)が出力される。かかる6行目のコマンドが、図194のステップS4に対応する。 The index "INITIAL01:" on the fourth line of FIG. 196(a) indicates the start address of the repeat process. The command "LDIN AC, (HL)" on the fifth line stores the value stored in the address indicated by the HL register in the C register, and stores the value stored in the address indicated by the value of the HL register plus "1" in the A register. This command on the fifth line corresponds to step S3 in FIG. 194. The command "OUT (C), A" on the sixth line outputs the value of the A register (setting data) to the value indicated by the C register (built-in register). This command on the sixth line corresponds to step S4 in FIG. 194.

続いて、図196(a)の7行目のコマンド「DJNZ INITIAL01」によって、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0でなければ、アドレス「INITIAL01」に移動し、デクリメントした結果が0であれば、当該コマンドの次のコマンドに処理を移す。ここでは、データ数が「10」なので、「INITIAL01」からの処理を10回繰り返すとBレジスタの値が0となる。かかる7行目のコマンドが、図194のステップS5に対応する。 Next, the command "DJNZ INITIAL01" on line 7 of Figure 196(a) decrements the value of the B register (subtracts "1"), and if the result of the decrement is not 0, it moves to address "INITIAL01", and if the result of the decrement is 0, it moves to the next command after that command. In this case, the number of data items is "10", so after repeating the process from "INITIAL01" 10 times, the value of the B register will become 0. This command on line 7 corresponds to step S5 in Figure 194.

このように、図196(a)に示したINITIALモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LDF HL,T_CPU_REG」2バイト+3行目のコマンド「LD B,@NUM_CPU_REG」2バイト+5行目のコマンド「LDIN AC,(HL)」2バイト+6行目のコマンド「OUT (C),A」2バイト+7行目のコマンド「DJNZ INITIAL01」2バイト=10バイトとなり、総実行サイクルは、2行目2サイクル+3行目2サイクル+5行目4サイクル+6行目3サイクル+7行目3サイクル(2サイクル)=14サイクル(13サイクル)となる。なお、括弧内のサイクル数は、コマンド「DJNZ INITIAL01」によって移動しなかった場合の実行サイクルを示している。なお、ここでは、設定データ数=10なので、5~7行目のコマンドが10回繰り返されることとなる。したがって、実際の総実行サイクルは、2行目2サイクル+3行目2サイクル+(5行目4サイクル+6行目3サイクル+7行目3サイクル)×9ループ+(5行目4サイクル+6行目3サイクル+7行目2サイクル)=103サイクルとなる。したがって、図195(a)の場合と比べ、総コマンドサイズが1バイト削減され、総実行サイクルが1サイクル削減されていることが理解できる。かかるINITIALモジュールによって、コマンドの更なる短縮化、および、処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 In this way, the total command size of the INITIAL module commands shown in FIG. 196(a) is 2 bytes of the command "LDF HL, T_CPU_REG" on line 2 + 2 bytes of the command "LD B, @NUM_CPU_REG" on line 3 + 2 bytes of the command "LDIN AC, (HL)" on line 5 + 2 bytes of the command "OUT (C), A" on line 6 + 2 bytes of the command "DJNZ INITIAL01" on line 7 = 10 bytes, and the total execution cycle is 2 cycles on line 2 + 2 cycles on line 3 + 4 cycles on line 5 + 3 cycles on line 6 + 3 cycles on line 7 (2 cycles) = 14 cycles (13 cycles). The number of cycles in parentheses indicates the execution cycle when there is no movement by the command "DJNZ INITIAL01". Note that here, since the number of set data = 10, the commands on lines 5 to 7 are repeated 10 times. Therefore, the actual total execution cycles are 2 cycles on line 2 + 2 cycles on line 3 + (4 cycles on line 5 + 3 cycles on line 6 + 3 cycles on line 7) x 9 loops + (4 cycles on line 5 + 3 cycles on line 6 + 2 cycles on line 7) = 103 cycles. Therefore, compared to the case of FIG. 195(a), it can be seen that the total command size is reduced by 1 byte and the total execution cycle is reduced by 1 cycle. This INITIAL module makes it possible to further shorten the command and reduce the processing load, and ensure the capacity of the control area for performing game control processing.

なお、上述した実施形態では、INITIALモジュールを挙げ、内部レジスタに設定データを設定する処理において、コマンド「LD HL,T_CPU_REG」をコマンド「LDF HL,T_CPU_REG」に置き換え、コマンドの更なる短縮化、および、処理負荷の軽減を図る例を挙げて説明した。しかし、かかるコマンドは、INITIALモジュールに限らず、様々なモジュールにも適用できる。 In the above embodiment, an example was given of the INITIAL module, and in the process of setting configuration data in an internal register, the command "LD HL, T_CPU_REG" was replaced with the command "LDF HL, T_CPU_REG" to further shorten the command and reduce the processing load. However, such a command can be applied to various modules, not limited to the INITIAL module.

例えば、表示データ変換処理を実行するDGEXTRNモジュールにおいても、コマンド「LD HL,T_SEG_PTN」が存在し、INITIALモジュール同様、メイン表示器表示パターンデータテーブルの先頭アドレス「T_SEG_PTN」がHLレジスタに読み出されている。また、先頭アドレス「T_SEG_PTN」は、1200H~1DFFHの範囲に含まれる。したがって、DGEXTRNモジュールにおいても、コマンド「LD HL,T_SEG_PTN」をコマンド「LDF HL,T_SEG_PTN」に変更することで、コマンドの更なる短縮化、および、処理負荷の軽減を図ることができる。 For example, the DGEXTRN module, which executes the display data conversion process, also has the command "LD HL, T_SEG_PTN," and like the INITIAL module, the top address of the main display display pattern data table, "T_SEG_PTN," is read into the HL register. The top address, "T_SEG_PTN," is also included in the range of 1200H to 1DFFH. Therefore, in the DGEXTRN module, by changing the command "LD HL, T_SEG_PTN" to the command "LDF HL, T_SEG_PTN," it is possible to further shorten the command and reduce the processing load.

また、図柄配列データ取得処理を実行するGET_ARYモジュールにおいても、コマンド「LD HL,T_FIG_LIN」が存在し、INITIALモジュール同様、有効ライン別図柄配列オフセットテーブルの先頭アドレス「T_FIG_LIN」がHLレジスタに読み出されている。また、先頭アドレス「T_FIG_LIN」は、1200H~1DFFHの範囲に含まれる。したがって、GET_ARYモジュールにおいても、コマンド「LD HL,T_FIG_LIN」をコマンド「LDF HL,T_FIG_LIN」に変更することで、コマンドの更なる短縮化、および、処理負荷の軽減を図ることができる。 The GET_ARY module, which executes the pattern array data acquisition process, also has the command "LD HL, T_FIG_LIN", and like the INITIAL module, the starting address of the pattern array offset table by active line, "T_FIG_LIN", is read into the HL register. The starting address "T_FIG_LIN" is also included in the range of 1200H to 1DFFH. Therefore, in the GET_ARY module, by changing the command "LD HL, T_FIG_LIN" to the command "LDF HL, T_FIG_LIN", it is possible to further shorten the command and reduce the processing load.

このように、転送元のアドレスを1200H~1DFFHの範囲に収めることで、ほとんどのコマンド「LD HL,mn」をコマンド「LDF HL,mn」に置き換えることができる。かかる置き換えを本実施形態における全ての処理に適用することで、例えば、総コマンドサイズを80~90バイト短縮化することも可能となる。 In this way, by keeping the source address within the range of 1200H to 1DFFH, most commands "LD HL, mn" can be replaced with the command "LDF HL, mn." By applying this replacement to all processes in this embodiment, it is possible to reduce the total command size by, for example, 80 to 90 bytes.

かかるコマンド「LDF」は、上述したINITIALモジュールのみならず、様々なモジュール、例えば、RANKSETモジュール等に採用することができる。また、スロットマシンのみならず、パチンコ機における、例えば、PWRFAILモジュールやDYM_OUTモジュール等にも採用することができる。 This command "LDF" can be used not only in the INITIAL module described above, but also in various other modules, such as the RANKSET module. It can also be used not only in slot machines, but also in pachinko machines, such as the PWRFAIL module and DYM_OUT module.

図197は、RANKSETモジュールを説明するための説明図である。図85のステップS2020に示したRANKSETモジュールは、設定値切り替え処理、すなわち、設定値を切り替え、設定値データを更新する。なお、ここでは、RANKSETモジュール中のステップS2020-5の設定値切り替え時データテーブルセット処理を挙げて説明する。 Figure 197 is an explanatory diagram for explaining the RANKSET module. The RANKSET module shown in step S2020 of Figure 85 performs setting value switching processing, i.e., switches setting values and updates setting value data. Note that here, the data table setting processing at setting value switching in step S2020-5 in the RANKSET module will be described as an example.

図197(a)の1行目の指標「RANKSET:」は、当該RANKSETモジュールの先頭アドレスを示す。2行目のコマンド「LD HL,T_RNK_SET」によって、設定値切り替え時データテーブルの先頭アドレス「T_RNK_SET」がHLレジスタに読み出される。3行目のコマンド「RST TABLSET」によって、サブルーチンとして、図138を用いて説明したTABLSETモジュールが呼び出される。かかるTABLSETモジュールについては既に説明されているので、ここでは、その詳細な説明を省略する。ここでは、設定値切り替え時データテーブルにおける2つの変数(_WIN_DAT、_EXT_REQ)が所定値に設定される。 The index "RANKSET:" on the first line of Figure 197(a) indicates the starting address of the RANKSET module. The command "LD HL, T_RNK_SET" on the second line reads the starting address "T_RNK_SET" of the data table at the time of setting value switching into the HL register. The command "RST TABLESET" on the third line calls the TABLESET module explained using Figure 138 as a subroutine. The TABLESET module has already been explained, so a detailed explanation is omitted here. Here, two variables (_WIN_DAT, _EXT_REQ) in the data table at the time of setting value switching are set to predetermined values.

ここで、コマンド「LDF」への置き換えを行うと、図197(a)のコマンド群を図197(b)のように変更することができる。図197(b)の1行目の指標「RANKSET:」は、当該RANKSETモジュールの先頭アドレスを示す。2行目のコマンド「LDF HL,T_RNK_SET」によって、設定値切り替え時データテーブルの先頭アドレス「T_RNK_SET」がHLレジスタに読み出される。なお、設定値切り替え時データテーブルの先頭アドレス「T_RNK_SET」はメインROM500bの使用領域における1200H~1DFFHの範囲に配置される。3行目のコマンド「RST TABLSET」によって、サブルーチンとして、図138を用いて説明したTABLSETモジュールが呼び出される。こうして、図197(a)同様、設定値切り替え時データテーブルにおける2つの変数(_WIN_DAT、_EXT_REQ)が所定値に設定される。 If the command "LDF" is substituted here, the command group in FIG. 197(a) can be changed to that in FIG. 197(b). The index "RANKSET:" on the first line of FIG. 197(b) indicates the start address of the RANKSET module. The command "LDF HL, T_RNK_SET" on the second line reads the start address of the data table at the time of setting value switching, "T_RNK_SET", into the HL register. The start address of the data table at the time of setting value switching, "T_RNK_SET", is located in the range of 1200H to 1DFFH in the used area of main ROM 500b. The command "RST TABLESET" on the third line calls the TABLSET module described using FIG. 138 as a subroutine. In this way, similar to FIG. 197(a), the two variables (_WIN_DAT, _EXT_REQ) in the data table when the setting value is switched are set to predetermined values.

ここで、図197(a)に示したRANKSETモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LD HL,T_RNK_SET」3バイト+3行目のコマンド「RST TABLSET」1バイト=4バイトとなり、総実行サイクルは、2行目3サイクル+3行目4サイクル=7サイクルとなる。一方、図197(b)に示したRANKSETモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LDF HL,T_RNK_SET」2バイト+3行目のコマンド「RST TABLSET」1バイト=3バイトとなり、総実行サイクルは、2行目2サイクル+3行目4サイクル=6サイクルとなる。したがって、図197(a)の場合と比べ、総コマンドサイズが1バイト削減され、総実行サイクルが1サイクル削減されていることが理解できる。かかるRANKSETモジュールによって、コマンドの更なる短縮化、および、処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the commands of the RANKSET module shown in FIG. 197(a) is 3 bytes of the command "LD HL, T_RNK_SET" on the second line + 1 byte of the command "RST TABLESET" on the third line = 4 bytes, and the total execution cycle is 3 cycles on the second line + 4 cycles on the third line = 7 cycles. On the other hand, the total command size of the commands of the RANKSET module shown in FIG. 197(b) is 2 bytes of the command "LDF HL, T_RNK_SET" on the second line + 1 byte of the command "RST TABLESET" on the third line = 3 bytes, and the total execution cycle is 2 cycles on the second line + 4 cycles on the third line = 6 cycles. Therefore, it can be seen that the total command size is reduced by 1 byte and the total execution cycle is reduced by 1 cycle compared to the case of FIG. 197(a). This RANKSET module makes it possible to further shorten commands, reduce processing load, and ensure the capacity of the control area for performing game control processing.

図198は、PWRFAILモジュールを説明するための説明図である。図25のステップS300に示したPWRFAILモジュールは、電源断時退避処理、すなわち、設定値を切り替え、設定値データを更新する。なお、ここでは、PWRFAILモジュール中のステップS300-11の出力ポートクリア処理を挙げて説明する。 Figure 198 is an explanatory diagram for explaining the PWRFAIL module. The PWRFAIL module shown in step S300 of Figure 25 performs a power-off save process, i.e., switches the setting value and updates the setting value data. Note that here, the output port clear process of step S300-11 in the PWRFAIL module will be described as an example.

ここでは、出力ポートの初期値として予め00HがAレジスタに設定されているとする。図198(a)の1行目の指標「PWRFAIL:」は、当該PWRFAILモジュールの先頭アドレスを示す。2行目のコマンド「LD HL,D_OUT_PRT」によって、出力ポートアドレステーブルの先頭アドレス「D_OUT_PRT」がHLレジスタに読み出される。3行目のコマンド「LD B,@PRT_CLR_LOP」によって、アドレス「@PRT_CLR_LOP」に格納されている出力ポート初期化ループカウンタ値(ここでは13)がループ回数としてBレジスタに読み出される。 Here, it is assumed that 00H has been set in advance in the A register as the initial value of the output port. The index "PWRFAIL:" on the first line of FIG. 198(a) indicates the starting address of the PWRFAIL module. The command "LD HL, D_OUT_PRT" on the second line reads the starting address "D_OUT_PRT" of the output port address table into the HL register. The command "LD B, @PRT_CLR_LOP" on the third line reads the output port initialization loop counter value (13 in this case) stored at address "@PRT_CLR_LOP" into the B register as the number of loops.

図198(a)の4行目の指標「PWRFAIL_20:」は繰り返し処理の先頭アドレスを示す。5行目のコマンド「LD C,(HL)」によって、HLレジスタで示されるアドレスに格納された値(出力ポートアドレス)がCレジスタに読み出される。6行目のコマンド「OUT (C),A」によって、Cレジスタで示される値(内蔵レジスタ)に、Aレジスタの値(ここでは00H)が出力され、出力ポートがクリアされる。 The index "PWRFAIL_20:" on the fourth line of Figure 198(a) indicates the start address of the repeat process. The command "LD C, (HL)" on the fifth line reads the value stored at the address indicated by the HL register (output port address) into the C register. The command "OUT (C), A" on the sixth line outputs the value of the A register (00H in this case) to the value indicated by the C register (built-in register), and the output port is cleared.

続いて、図198(a)の7行目のコマンド「INC HL」によってHLレジスタの値が1だけインクリメントされる。8行目のコマンド「DJNZ PWRFAIL_20」によって、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0でなければ、アドレス「PWRFAIL_20」に移動し、デクリメントした結果が0であれば、当該コマンドの次のコマンドに処理を移す。ここでは、データ数が「13」なので、「PWRFAIL_20」からの処理を13回繰り返すとBレジスタの値が0となる。こうして、出力ポートがクリアされる。 Next, the command "INC HL" on line 7 of Figure 198(a) increments the value of the HL register by 1. The command "DJNZ PWRFAIL_20" on line 8 decrements the value of the B register (subtracts "1"), and if the result of the decrement is not 0, it moves to address "PWRFAIL_20", and if the result of the decrement is 0, it moves to the next command after that command. In this case, the number of data items is "13", so if the process from "PWRFAIL_20" is repeated 13 times, the value of the B register will become 0. In this way, the output port is cleared.

ここで、コマンド「LDF」への置き換えを行うと、図198(a)のコマンド群を図198(b)のように変更することができる。ここでも、出力ポートの初期値として予め00HがAレジスタに設定されているとする。図198(b)の1行目の指標「PWRFAIL:」は、当該PWRFAILモジュールの先頭アドレスを示す。2行目のコマンド「LDF HL,D_OUT_PRT」によって、出力ポートアドレステーブルの先頭アドレス「D_OUT_PRT」がHLレジスタに読み出される。なお、出力ポートアドレステーブルの先頭アドレス「D_OUT_PRT」はメインROM500bの使用領域における1200H~1DFFHの範囲に配置される。3行目のコマンド「LD B,@PRT_CLR_LOP」によって、アドレス「@PRT_CLR_LOP」に格納されている出力ポート初期化ループカウンタ値(ここでは13)がループ回数としてBレジスタに読み出される。 Now, by replacing it with the command "LDF", the command group in FIG. 198(a) can be changed to that in FIG. 198(b). Here again, it is assumed that 00H is set in advance in the A register as the initial value of the output port. The index "PWRFAIL:" in the first line of FIG. 198(b) indicates the start address of the PWRFAIL module. The command "LDF HL, D_OUT_PRT" in the second line reads the start address "D_OUT_PRT" of the output port address table into the HL register. The start address "D_OUT_PRT" of the output port address table is located in the range of 1200H to 1DFFH in the used area of the main ROM 500b. The command "LD B, @PRT_CLR_LOP" in the third line reads the output port initialization loop counter value (here, 13) stored in the address "@PRT_CLR_LOP" into the B register as the number of loops.

図198(b)の4行目の指標「PWRFAIL_20:」は繰り返し処理の先頭アドレスを示す。5行目のコマンド「LD C,(HL)」によって、HLレジスタで示されるアドレスに格納された値(出力ポートアドレス)がCレジスタに読み出される。6行目のコマンド「OUT (C),A」によって、Cレジスタで示される値(内蔵レジスタ)に、Aレジスタの値(ここでは00H)が出力され、出力ポートがクリアされる。 The index "PWRFAIL_20:" on the fourth line of Figure 198(b) indicates the start address of the repeat process. The command "LD C, (HL)" on the fifth line reads the value stored at the address indicated by the HL register (output port address) into the C register. The command "OUT (C), A" on the sixth line outputs the value of the A register (00H in this case) to the value indicated by the C register (built-in register), and the output port is cleared.

続いて、図198(b)の7行目のコマンド「INC HL」によってHLレジスタの値が1だけインクリメントされる。8行目のコマンド「DJNZ PWRFAIL_20」によって、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0でなければ、アドレス「PWRFAIL_20」に移動し、デクリメントした結果が0であれば、当該コマンドの次のコマンドに処理を移す。ここでは、データ数が「13」なので、「PWRFAIL_20」からの処理を13回繰り返すとBレジスタの値が0となる。こうして、出力ポートがクリアされる。 Next, the command "INC HL" on line 7 of Figure 198 (b) increments the value of the HL register by 1. The command "DJNZ PWRFAIL_20" on line 8 decrements the value of the B register (subtracts "1"), and if the result of the decrement is not 0, it moves to address "PWRFAIL_20", and if the result of the decrement is 0, it moves to the next command after that command. In this case, the number of data items is "13", so after repeating the process from "PWRFAIL_20" 13 times, the value of the B register will become 0. In this way, the output port is cleared.

ここで、図198(a)に示したPWRFAILモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LD HL,D_OUT_PRT」3バイト+3行目のコマンド「LD B,@PRT_CLR_LOP」2バイト+5行目のコマンド「LD C,(HL)」1バイト+6行目のコマンド「OUT (C),A」2バイト+7行目のコマンド「INC HL」1バイト+8行目のコマンド「DJNZ PWRFAIL_20」2バイト=11バイトとなり、総実行サイクルは、2行目3サイクル+3行目2サイクル+5行目2サイクル+6行目3サイクル+7行目1サイクル+8行目3サイクル(2サイクル)=14サイクル(13サイクル)となる。なお、ここでは、出力ポート初期化ループカウンタ値=13なので、5~8行目のコマンドが13回繰り返されることとなる。したがって、実際の総実行サイクルは、2行目3サイクル+3行目2サイクル+(5行目2サイクル+6行目3サイクル+7行目1サイクル+8行目3サイクル)×12ループ+(5行目2サイクル+6行目3サイクル+7行目1サイクル+8行目2サイクル)=121サイクルとなる。 Here, the total command size of the PWRFAIL module commands shown in Fig. 198(a) is 3 bytes of the command "LD HL, D_OUT_PRT" on line 2 + 2 bytes of the command "LD B, @PRT_CLR_LOP" on line 3 + 1 byte of the command "LD C, (HL)" on line 5 + 2 bytes of the command "OUT (C), A" on line 6 + 1 byte of the command "INC HL" on line 7 + 2 bytes of the command "DJNZ PWRFAIL_20" on line 8 = 11 bytes, and the total execution cycle is 3 cycles on line 2 + 2 cycles on line 3 + 2 cycles on line 5 + 3 cycles on line 6 + 1 cycle on line 7 + 3 cycles (2 cycles) on line 8 = 14 cycles (13 cycles). Note that here, since the output port initialization loop counter value = 13, the commands on lines 5 to 8 are repeated 13 times. Therefore, the actual total execution cycles are 3 cycles for line 2 + 2 cycles for line 3 + (2 cycles for line 5 + 3 cycles for line 6 + 1 cycle for line 7 + 3 cycles for line 8) x 12 loops + (2 cycles for line 5 + 3 cycles for line 6 + 1 cycle for line 7 + 2 cycles for line 8) = 121 cycles.

一方、図198(b)に示したPWRFAILモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LDF HL,D_OUT_PRT」2バイト+3行目のコマンド「LD B,@PRT_CLR_LOP」2バイト+5行目のコマンド「LD C,(HL)」1バイト+6行目のコマンド「OUT (C),A」2バイト+7行目のコマンド「INC HL」1バイト+8行目のコマンド「DJNZ PWRFAIL_20」2バイト=10バイトとなり、総実行サイクルは、2行目2サイクル+3行目2サイクル+5行目2サイクル+6行目3サイクル+7行目1サイクル+8行目3サイクル(2サイクル)=13サイクル(12サイクル)となる。なお、ここでは、出力ポート初期化ループカウンタ値=13なので、5~8行目のコマンドが13回繰り返されることとなる。したがって、実際の総実行サイクルは、2行目2サイクル+3行目2サイクル+(5行目2サイクル+6行目3サイクル+7行目1サイクル+8行目3サイクル)×12ループ+(5行目2サイクル+6行目3サイクル+7行目1サイクル+8行目2サイクル)=120サイクルとなる。したがって、図198(a)の場合と比べ、総コマンドサイズが1バイト削減され、総実行サイクルが1サイクル削減されていることが理解できる。かかるPWRFAILモジュールによって、コマンドの更なる短縮化、および、処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 On the other hand, the total command size of the PWRFAIL module commands shown in FIG. 198(b) is 2 bytes of the command "LDF HL, D_OUT_PRT" on the second line + 2 bytes of the command "LD B, @PRT_CLR_LOP" on the third line + 1 byte of the command "LD C, (HL)" on the fifth line + 2 bytes of the command "OUT (C), A" on the sixth line + 1 byte of the command "INC HL" on the seventh line + 2 bytes of the command "DJNZ PWRFAIL_20" on the eighth line = 10 bytes, and the total execution cycle is 2 cycles on the second line + 2 cycles on the third line + 2 cycles on the fifth line + 3 cycles on the sixth line + 1 cycle on the seventh line + 3 cycles on the eighth line (2 cycles) = 13 cycles (12 cycles). Note that the output port initialization loop counter value is 13 here, so the commands on the fifth to eighth lines are repeated 13 times. Therefore, the actual total execution cycles are 2 cycles on line 2 + 2 cycles on line 3 + (2 cycles on line 5 + 3 cycles on line 6 + 1 cycle on line 7 + 3 cycles on line 8) x 12 loops + (2 cycles on line 5 + 3 cycles on line 6 + 1 cycle on line 7 + 2 cycles on line 8) = 120 cycles. Therefore, compared to the case of FIG. 198(a), it can be seen that the total command size is reduced by 1 byte and the total execution cycle is reduced by 1 cycle. This PWRFAIL module makes it possible to further shorten commands, reduce the processing load, and ensure the capacity of the control area for performing game control processing.

図199は、DYM_OUTモジュールを説明するための説明図である。図26のステップS400-5で示したDYM_OUTモジュールは、第1特別図柄表示器160、第2特別図柄表示器162、第1特別図柄保留表示器164、第2特別図柄保留表示器166、普通図柄表示器168、普通図柄保留表示器170、右打ち報知表示器172、性能表示モニタ184を点灯制御するダイナミックポート出力処理を実行する。 Figure 199 is an explanatory diagram for explaining the DYM_OUT module. The DYM_OUT module shown in step S400-5 of Figure 26 executes dynamic port output processing that controls the lighting of the first special symbol display 160, the second special symbol display 162, the first special symbol reserved display 164, the second special symbol reserved display 166, the normal symbol display 168, the normal symbol reserved display 170, the right hit notification display 172, and the performance display monitor 184.

図199(a)の1行目の指標「DYM_OUT:」は、当該DYM_OUTモジュールの先頭アドレスを示す。2行目のコマンド「LD HL,D_DYM_SEL」によって、ダイナミック表示選択テーブルの先頭アドレス「D_DYM_SEL」がHLレジスタに読み出される。3行目のコマンド「RST WORDSEL」によって、サブルーチンとして、図127~図130を用いて説明したWORDSELモジュールが呼び出される。かかるWORDSELモジュールについては既に説明されているので、ここでは、その詳細な説明を省略する。こうして、ダイナミック表示選択テーブルにおける4つの2バイトデータが選択される。 The index "DYM_OUT:" on the first line of Figure 199(a) indicates the starting address of the DYM_OUT module. The command "LD HL, D_DYM_SEL" on the second line reads the starting address of the dynamic display selection table, "D_DYM_SEL", into the HL register. The command "RST WORDSEL" on the third line calls the WORDSEL module described using Figures 127 to 130 as a subroutine. The WORDSEL module has already been described, so a detailed description of it will be omitted here. In this way, four 2-byte data in the dynamic display selection table are selected.

ここで、コマンド「LDF」への置き換えを行うと、図199(a)のコマンド群を図199(b)のように変更することができる。図199(b)の1行目の指標「DYM_OUT:」は、当該DYM_OUTモジュールの先頭アドレスを示す。2行目のコマンド「LDF HL,D_DYM_SEL」によって、ダイナミック表示選択テーブルの先頭アドレス「D_DYM_SEL」がHLレジスタに読み出される。なお、ダイナミック表示選択テーブルの先頭アドレス「D_DYM_SEL」はメインROM500bの使用領域における1200H~1DFFHの範囲に配置される。3行目のコマンド「RST WORDSEL」によって、サブルーチンとして、図127~図130を用いて説明したWORDSELモジュールが呼び出される。こうして、ダイナミック表示選択テーブルにおける4つの2バイトデータが選択される。 Now, by replacing it with the command "LDF", the command group in FIG. 199(a) can be changed to that in FIG. 199(b). The index "DYM_OUT:" on the first line of FIG. 199(b) indicates the start address of the DYM_OUT module. The command "LDF HL, D_DYM_SEL" on the second line reads the start address "D_DYM_SEL" of the dynamic display selection table to the HL register. The start address "D_DYM_SEL" of the dynamic display selection table is allocated in the range of 1200H to 1DFFH in the used area of main ROM 500b. The command "RST WORDSEL" on the third line calls the WORDSEL module explained using FIG. 127 to FIG. 130 as a subroutine. In this way, four 2-byte data in the dynamic display selection table are selected.

ここで、図199(a)に示したDYM_OUTモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LD HL,D_DYM_SEL」3バイト+3行目のコマンド「RST WORDSEL」1バイト=4バイトとなり、総実行サイクルは、2行目3サイクル+3行目4サイクル=7サイクルとなる。一方、図199(b)に示したDYM_OUTモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LDF HL,D_DYM_SEL」2バイト+3行目のコマンド「RST WORDSEL」1バイト=3バイトとなり、総実行サイクルは、2行目2サイクル+3行目4サイクル=6サイクルとなる。したがって、図199(a)の場合と比べ、総コマンドサイズが1バイト削減され、総実行サイクルが1サイクル削減されていることが理解できる。かかるDYM_OUTモジュールによって、コマンドの更なる短縮化、および、処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the total command size of the DYM_OUT module commands shown in FIG. 199(a) is 3 bytes of the command "LD HL, D_DYM_SEL" on the second line + 1 byte of the command "RST WORDSEL" on the third line = 4 bytes, and the total execution cycles are 3 cycles on the second line + 4 cycles on the third line = 7 cycles. On the other hand, the total command size of the DYM_OUT module commands shown in FIG. 199(b) is 2 bytes of the command "LDF HL, D_DYM_SEL" on the second line + 1 byte of the command "RST WORDSEL" on the third line = 3 bytes, and the total execution cycles are 2 cycles on the second line + 4 cycles on the third line = 6 cycles. Therefore, it can be seen that the total command size has been reduced by 1 byte and the total execution cycles have been reduced by 1 cycle compared to the case of FIG. 199(a). This DYM_OUT module makes it possible to further shorten commands, reduce processing load, and ensure the capacity of the control area for performing game control processing.

<コマンド「SET」>
図200は、IPT_PDモジュールの具体的な処理を示したフローチャートである。ここでは、任意の処理として、図98のステップS3100-21で示した状態別モジュール実行処理を実行するためのCAL_MODモジュールにおいて、タイマ割込み処理用フェーズ(0~3)に応じて4回に1回(5.96msec毎に)選択的に移行し、外部信号出力制御処理を実行するIPT_PDモジュールの一部である外部信号4を設定する処理を挙げて説明する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。また、当該IPT_PDモジュールの説明中、所定のレジスタはHLレジスタである。
<Command "SET">
Fig. 200 is a flow chart showing the specific processing of the IPT_PD module. Here, as an optional processing, in the CAL_MOD module for executing the state-specific module execution processing shown in step S3100-21 of Fig. 98, the processing of setting the external signal 4, which is a part of the IPT_PD module that selectively transitions once every four times (every 5.96 msec) according to the timer interrupt processing phase (0 to 3) and executes the external signal output control processing, will be described. The numerical values of step S in this figure will be used only in the description of this figure. Also, in the description of the IPT_PD module, the specified register is the HL register.

メインCPU500aは、図200のように、任意の処理を実行する。メインCPU500aは、まず、外部信号出力保持タイマに関するカウンタの減算処理を行う(S1)。そして、メインCPU500aは、HLレジスタに、出力ポート3イメージのアドレスを設定する(S2)。続いて、メインCPU500aは、ステップS1の減算処理によりセキュリティ信号ON条件を満たすか否か判定し、ON条件を満たしていれば、外部信号4、すなわち、HLレジスタで示されるアドレスの値の所定のビットを立たせる(1にする)(S3)。そして、当該IPT_PDモジュールを終了して1段上のルーチンに戻る(S4)。こうして、外部信号4を設定することが可能となる。 The main CPU 500a executes any process as shown in FIG. 200. First, the main CPU 500a performs a subtraction process on the counter related to the external signal output hold timer (S1). Then, the main CPU 500a sets the address of the output port 3 image in the HL register (S2). Next, the main CPU 500a determines whether the security signal ON condition is met by the subtraction process of step S1, and if the ON condition is met, sets a specified bit of the external signal 4, i.e., the address value indicated by the HL register (sets it to 1) (S3). Then, the IPT_PD module is terminated and the process returns to the routine one level above (S4). In this way, the external signal 4 can be set.

図201は、IPT_PDモジュールを実現するためのコマンドの一例を説明するための説明図である。図200で示したフローチャートは、例えば、図201に示したプログラムによって実現される。 Figure 201 is an explanatory diagram for explaining an example of a command for implementing the IPT_PD module. The flowchart shown in Figure 200 is implemented, for example, by the program shown in Figure 201.

図201の1行目の指標「IPT_PD:」は、当該IPT_PDモジュールの先頭アドレスを示す。2行目のコマンド「RST RAM_DEC」は、変数を1デクリメントする汎用モジュールを呼び出すコマンドであり、このコマンドによって外部信号出力保持タイマに関するカウンタが減算される。ここでは、コマンド「RST RAM_DEC」によって少なくともゼロフラグが更新される。かかる2行目のコマンドが、図200のステップS1に対応する。3行目のコマンド「LDQ HL,LOW _OUT_PT3」によって、Qレジスタの値をHレジスタに読み出し、アドレス「_OUT_PT3」の下位1バイトの値をLレジスタに読み出す。コマンド「LDQ HL,LOW _OUT_PT3」によってはゼロフラグが変化しない。かかる3行目のコマンドが、図200のステップS2に対応する。 The index "IPT_PD:" on the first line of FIG. 201 indicates the starting address of the IPT_PD module. The command "RST RAM_DEC" on the second line is a command to call a general-purpose module that decrements a variable by 1, and this command subtracts the counter related to the external signal output holding timer. Here, the command "RST RAM_DEC" updates at least the zero flag. This command on the second line corresponds to step S1 in FIG. 200. The command "LDQ HL, LOW _OUT_PT3" on the third line reads the value of the Q register into the H register, and reads the value of the lowest byte of the address "_OUT_PT3" into the L register. The command "LDQ HL, LOW _OUT_PT3" does not change the zero flag. This command on the third line corresponds to step S2 in FIG. 200.

図201の4行目のコマンド「JR Z,IPT_PD03」によって、2行目のコマンド「RST RAM_DEC」の減算結果がゼロであるか否か判定され、ゼロであれば(ゼロフラグが立っていれば)、すなわち、セキュリティ信号ON条件を満たしていなければ、6行目の指標「IPT_PD03:」に移動し、ゼロでなければ(ゼロフラグが立っていなければ)、次の処理を行う。5行目のコマンド「SET @EXT_SG4_POS,(HL)」は、出力ポート3イメージ、すなわち、HLレジスタが示すアドレスに格納されている値における、@EXT_SG4_POSで定義される値(ここでは、2)のビットを立たせる。6行目の指標「IPT_PD03:」は4行目のコマンド「JR Z,IPT_PD03」の移動先を示す。かかる4~6行目のコマンドが、図200のステップS3に対応する。そして、図201の7行目のコマンド「RET」によって、1段上のルーチンに戻る。かかる7行目のコマンドが、図200のステップS4に対応する。 The command "JR Z, IPT_PD03" on line 4 of Fig. 201 determines whether the subtraction result of the command "RST RAM_DEC" on line 2 is zero. If it is zero (if the zero flag is set), i.e., if the security signal ON condition is not met, it moves to the index "IPT_PD03:" on line 6, and if it is not zero (if the zero flag is not set), it performs the next process. The command "SET @EXT_SG4_POS, (HL)" on line 5 sets the bit of the value (2 in this case) defined by @EXT_SG4_POS in the output port 3 image, i.e., the value stored at the address indicated by the HL register. The index "IPT_PD03:" on line 6 indicates the destination of the command "JR Z, IPT_PD03" on line 4. These commands on lines 4 to 6 correspond to step S3 in Fig. 200. Then, the command "RET" on line 7 of Fig. 201 returns to the routine one level above. This command on line 7 corresponds to step S4 in Fig. 200.

このように、図201に示したIPT_PDモジュールのコマンドの総コマンドサイズは、2行目のコマンド「RST RAM_DEC」1バイト+3行目のコマンド「LDQ HL,LOW _OUT_PT3」2バイト+4行目のコマンド「JR Z,IPT_PD03」2バイト+5行目のコマンド「SET @EXT_SG4_POS,(HL)」2バイト+7行目のコマンド「RET」1バイト=8バイトとなり、総実行サイクルは、コマンド「JR Z,IPT_PD03」によって移動しなかった場合、2行目4サイクル+3行目2サイクル+4行目2サイクル+5行目5サイクル+7行目3サイクル=16サイクルとなり、コマンド「JR Z,IPT_PD03」によって移動した場合、2行目4サイクル+3行目2サイクル+4行目3サイクル+7行目3サイクル=12サイクルとなる。かかるIPT_PDモジュールにおいて4~6行目の処理を設けることによって、減算結果に応じた、出力ポート3イメージのビット操作が可能となる。 In this way, the total command size of the commands of the IPT_PD module shown in Figure 201 is 1 byte of the command "RST RAM_DEC" on line 2 + 2 bytes of the command "LDQ HL,LOW _OUT_PT3" on line 3 + 2 bytes of the command "JR Z,IPT_PD03" on line 4 + 2 bytes of the command "SET @EXT_SG4_POS,(HL)" on line 5 + 1 byte of the command "RET" on line 7 = 8 bytes, and the total execution cycles are 4 cycles on line 2 + 2 cycles on line 3 + 2 cycles on line 4 + 5 cycles on line 5 + 3 cycles on line 7 = 16 cycles if there is no movement using the command "JR Z,IPT_PD03", and 4 cycles on line 2 + 2 cycles on line 3 + 3 cycles on line 4 + 3 cycles on line 7 = 12 cycles if there is movement using the command "JR Z,IPT_PD03". By implementing the processing on lines 4 to 6 in this IPT_PD module, it becomes possible to manipulate the bits of the output port 3 image according to the subtraction result.

図202は、IPT_PDモジュールを実現するためのコマンドの他の例を説明するための説明図である。ここでは、図201のIPT_PDモジュールのコマンド群を、図202のIPT_PDモジュールのコマンド群に置き換えている。 Figure 202 is an explanatory diagram for explaining another example of commands for implementing the IPT_PD module. Here, the command group of the IPT_PD module in Figure 201 is replaced with the command group of the IPT_PD module in Figure 202.

図202の1行目の指標「IPT_PD:」は、当該IPT_PDモジュールの先頭アドレスを示す。2行目のコマンド「RST RAM_DEC」は、変数を1デクリメントする汎用モジュールを呼び出すコマンドであり、このコマンドによって外部信号出力保持タイマに関するカウンタが減算される。ここでは、コマンド「RST RAM_DEC」によって少なくともゼロフラグが更新される。かかる2行目のコマンドが、図200のステップS1に対応する。3行目のコマンド「LDQ HL,LOW _OUT_PT3」によって、Qレジスタの値をHレジスタに読み出し、アドレス「_OUT_PT3」の下位1バイトの値をLレジスタに読み出す。コマンド「LDQ HL,LOW _OUT_PT3」によってはゼロフラグが変化しない。かかる3行目のコマンドが、図200のステップS2に対応する。 The index "IPT_PD:" on the first line of FIG. 202 indicates the starting address of the IPT_PD module. The command "RST RAM_DEC" on the second line is a command to call a general-purpose module that decrements a variable by 1, and this command subtracts the counter related to the external signal output holding timer. Here, the command "RST RAM_DEC" updates at least the zero flag. This command on the second line corresponds to step S1 in FIG. 200. The command "LDQ HL, LOW _OUT_PT3" on the third line reads the value of the Q register into the H register, and reads the value of the lowest byte of the address "_OUT_PT3" into the L register. The command "LDQ HL, LOW _OUT_PT3" does not change the zero flag. This command on the third line corresponds to step S2 in FIG. 200.

図202の4行目のコマンド「SET NZ,@EXT_SG4_POS,(HL)」によって、2行目のコマンド「RST RAM_DEC」の減算結果がゼロでなければ(ゼロフラグが立っていなければ)、すなわち、セキュリティ信号ON条件を満たしていれば、出力ポート3イメージ、すなわち、HLレジスタが示すアドレスの値における、@EXT_SG4_POSで定義される値(ここでは、2)のビットを立たせる。かかる4行目のコマンドが、図200のステップS3に対応する。そして、図202の5行目のコマンド「RET」によって、1段上のルーチンに戻る。かかる5行目のコマンドが、図200のステップS4に対応する。 The command "SET NZ, @EXT_SG4_POS, (HL)" on the fourth line of Fig. 202 sets the bit of the value (2 in this case) defined by @EXT_SG4_POS in the output port 3 image, i.e., the address value indicated by the HL register, if the subtraction result of the command "RST RAM_DEC" on the second line is not zero (if the zero flag is not set), i.e., if the security signal ON condition is met. This command on the fourth line corresponds to step S3 in Fig. 200. Then, the command "RET" on the fifth line of Fig. 202 returns to the routine one level above. This command on the fifth line corresponds to step S4 in Fig. 200.

ここで、コマンド「SET cc,b,(HL)」は、ccに対応するフラグ(ゼロフラグやキャリーフラグ)が真であれば、HLレジスタで示されるアドレスの値(変数)のbビット目を立てるコマンドである。かかるコマンドのコマンドサイズは「2」であり、実行サイクルは「5」(「2」)である。なお、括弧内のサイクル数は、コマンド「SET cc,b,(HL)」においてフラグが真ではなかった場合の実行サイクルを示している。 Here, the command "SET cc, b, (HL)" is a command that sets the bth bit of the address value (variable) indicated by the HL register if the flag corresponding to cc (zero flag or carry flag) is true. The command size of this command is "2", and the execution cycle is "5" ("2"). Note that the number of cycles in parentheses indicates the execution cycle when the flag is not true in the command "SET cc, b, (HL)".

このように、図202に示したIPT_PDモジュールのコマンドの総コマンドサイズは、2行目のコマンド「RST RAM_DEC」1バイト+3行目のコマンド「LDQ HL,LOW _OUT_PT3」2バイト+4行目のコマンド「SET NZ,@EXT_SG4_POS,(HL)」2バイト+5行目のコマンド「RET」1バイト=6バイトとなり、総実行サイクルは、2行目4サイクル+3行目2サイクル+4行目5サイクル(2サイクル)+5行目3サイクル=14サイクル(11サイクル)となる。したがって、図201の場合と比べ、総コマンドサイズが2バイト削減され、総実行サイクルが少なくとも1サイクル削減される。かかるIPT_PDモジュールによって、コマンドの更なる短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 In this way, the total command size of the commands of the IPT_PD module shown in FIG. 202 is 1 byte of the command "RST RAM_DEC" on the second line + 2 bytes of the command "LDQ HL, LOW _OUT_PT3" on the third line + 2 bytes of the command "SET NZ, @EXT_SG4_POS, (HL)" on the fourth line + 1 byte of the command "RET" on the fifth line = 6 bytes, and the total execution cycle is 4 cycles on the second line + 2 cycles on the third line + 5 cycles on the fourth line (2 cycles) + 3 cycles on the fifth line = 14 cycles (11 cycles). Therefore, compared to the case of FIG. 201, the total command size is reduced by 2 bytes, and the total execution cycle is reduced by at least 1 cycle. With this IPT_PD module, it is possible to further shorten the commands and reduce the processing load, and ensure the capacity of the control area for performing game control processing.

また、図201と図202とを比較して理解できるように、図201において3行(4行目~6行目)を占有していたコマンド群を、図202においては1行(4行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 201 and 202, the command group that occupies three lines (lines 4 to 6) in Figure 201 can be represented in one line (line 4) in Figure 202, making it possible to reduce the number of commands and lighten the design load.

なお、ここでは、ビットを設定するコマンド「SET cc,b,(HL)」を挙げて説明したが、かかる場合に限らず、ビットを設定するコマンド「SET cc,b,r」を用いることもできる。ここで、コマンド「SET cc,b,r」は、ccに対応するフラグ(ゼロフラグやキャリーフラグ)が真であれば、r(Aレジスタ,Bレジスタ,Dレジスタ,Eレジスタ,Hレジスタ,Lレジスタ)の値のbビット目を立てるコマンドである。かかるコマンドのコマンドサイズは「2」であり、実行サイクルは「2」である。 Note that, although the bit setting command "SET cc, b, (HL)" has been given here as an example, the bit setting command "SET cc, b, r" can also be used. Here, the command "SET cc, b, r" is a command that sets the b-th bit of the value of r (A register, B register, D register, E register, H register, L register) if the flag (zero flag or carry flag) corresponding to cc is true. The command size of this command is "2", and the execution cycle is "2".

かかるコマンド「SET」は、上述したIPT_PDモジュールのみならず、様々なモジュール、例えば、DYNMOUTモジュール等に採用することができる。また、スロットマシンのみならず、パチンコ機における、例えば、EXT_PRCモジュール等にも採用することができる。 This command "SET" can be used not only in the IPT_PD module described above, but also in various other modules, such as the DYNMOUT module. It can also be used not only in slot machines, but also in pachinko machines, such as the EXT_PRC module.

図203は、DYNMOUTモジュールを説明するための説明図である。図98のステップS3100-7で示したDYNMOUTモジュールでは、メインCPU500aが、セットされた出力イメージを出力ポートに出力し、メインクレジット表示部430、メイン払出表示部432、投入枚数表示器、スタート表示器、ストップスイッチ420a、420b、420cの表示器、リプレイ表示器、区間表示器460を点灯制御するダイナミックポート出力処理(ダイナミック点灯制御処理)が実行される。 Figure 203 is an explanatory diagram for explaining the DYNMOUT module. In the DYNMOUT module shown in step S3100-7 of Figure 98, the main CPU 500a outputs the set output image to the output port, and executes a dynamic port output process (dynamic lighting control process) that controls the lighting of the main credit display section 430, the main payout display section 432, the number of inserted coins indicator, the start indicator, the indicators of the stop switches 420a, 420b, and 420c, the replay indicator, and the section indicator 460.

図203(a)の1行目の指標「DYNMOUT:」は、当該DYNMOUTモジュールの先頭アドレスを示す。2行目のコマンド「RESQ @CHN_DSP_BIT,(LOW _WIN_DAT+1)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_WIN_DAT」の下位1バイトに1を加算した値をアドレスの下位1バイトとし、そのアドレスに格納された値(メイン表示器データバッファ2)における@CHN_DSP_BITが示すビット(ここではビット7)に0を設定する(リセットする)。3行目のコマンド「LDQ A,(LOW _OUT_PT2)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_OUT_PT2」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(出力ポート2イメージ)をAレジスタに読み出す。4行目のコマンド「JAND Z,A,00000011B,DYNMOUT02」によって、Aレジスタの値と00000011Bとの論理積がゼロであれば、アドレス「DYNMOUT02」に移動し、ゼロでなければ5行目のコマンドを処理する。5行目のコマンド「SETQ @CHN_DSP_BIT,(LOW _WIN_DAT+1)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_WIN_DAT」の下位1バイトに1を加算した値をアドレスの下位1バイトとし、そのアドレスに格納された値(メイン表示器データバッファ2)の@CHN_DSP_BITが示すビット(ここではビット7)に1を設定する(セットする)。6行目の指標「DYNMOUT02:」は、4行目のコマンド「JAND Z,A,00000011B,DYNMOUT02」の移動先を示す。こうして、出力ポート2イメージの下位2ビットの値に応じて、メイン表示器データバッファ2のビット7を設定することが可能となる。 The index "DYNMOUT:" on the first line of FIG. 203(a) indicates the starting address of the DYNMOUT module. The command "RESQ @CHN_DSP_BIT, (LOW _WIN_DAT+1)" on the second line sets the value of the Q register to the upper byte of the address, and sets the value obtained by adding 1 to the lower byte of the address "_WIN_DAT" to the lower byte of the address, and sets (resets) the bit indicated by @CHN_DSP_BIT (here, bit 7) in the value stored at that address (main display data buffer 2) to 0. The command "LDQ A, (LOW _OUT_PT2)" on the third line sets the value of the Q register to the upper byte of the address, and sets the value of the lower byte of the address "_OUT_PT2" to the lower byte of the address, and reads the value stored at that address (output port 2 image) into the A register. The command on line 4, "JAND Z, A, 00000011B, DYNMOUT02," moves to address "DYNMOUT02" if the logical AND of the value of the A register and 00000011B is zero, and if it is not zero, processes the command on line 5. The command on line 5, "SET Q @CHN_DSP_BIT, (LOW _WIN_DAT+1)," sets the value of the Q register to the upper 1 byte of the address, sets the value obtained by adding 1 to the lower 1 byte of the address "_WIN_DAT" to the lower 1 byte of the address, and sets (sets) the bit indicated by @CHN_DSP_BIT (here, bit 7) of the value stored at that address (main display data buffer 2) to 1. The index "DYNMOUT02:" on the sixth line indicates the destination of the command "JAND Z, A, 00000011B, DYNMOUT02" on the fourth line. This makes it possible to set bit 7 of main display data buffer 2 according to the value of the lowest two bits of the output port 2 image.

ここで、コマンド「SET」への置き換えを行うと、図203(a)のコマンド群を図203(b)のように変更することができる。図203(b)の1行目の指標「DYNMOUT:」は、当該DYNMOUTモジュールの先頭アドレスを示す。2行目のコマンド「LDQ HL,LOW _WIN_DAT+1」によって、Qレジスタの値をHレジスタに読み出し、アドレス「_WIN_DAT」の下位1バイトの値に1を加算した値をLレジスタに読み出す。3行目のコマンド「RES @CHN_DSP_BIT,(HL)」によって、HLレジスタで示されるアドレスに格納された値における@CHN_DSP_BITが示すビット(ここではビット7)に0を設定する(リセットする)。4行目のコマンド「LDQ A,(LOW _OUT_PT2)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_OUT_PT2」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(出力ポート2イメージ)をAレジスタに読み出す。5行目のコマンド「AND A,00000011B」によって、Aレジスタの値と00000011Bとの論理積を演算し、Aレジスタをマスクする。6行目のコマンド「SET NZ,@CHN_DSP_BIT,(HL)」によって、5行目のコマンド「AND A,00000011B」の演算結果がゼロでなければ(ゼロフラグが立っていなければ)、HLレジスタが示すアドレスの値(メイン表示器データバッファ2)における@CHN_DSP_BITが示すビット(ここでは、ビット7)に1を設定する。こうして、図203(a)同様、出力ポート2イメージの下位2ビットの値に応じて、メイン表示器データバッファ2のビット7を設定することが可能となる。 If the command "SET" is substituted here, the group of commands in Figure 203(a) can be changed to that shown in Figure 203(b). The index "DYNMOUT:" on the first line of Figure 203(b) indicates the starting address of the DYNMOUT module. The command "LDQ HL,LOW _WIN_DAT+1" on the second line reads the value of the Q register into the H register, and reads the value obtained by adding 1 to the value of the lowest byte of the address "_WIN_DAT" into the L register. The command "RES @CHN_DSP_BIT,(HL)" on the third line sets (resets) the bit indicated by @CHN_DSP_BIT (here, bit 7) in the value stored at the address indicated by the HL register to 0. The command "LDQ A, (LOW _OUT_PT2)" on the fourth line sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "_OUT_PT2" to the lower byte of the address, and reads the value stored at that address (output port 2 image) into the A register. The command "AND A, 00000011B" on the fifth line performs a logical AND operation on the value of the A register and 00000011B, masking the A register. The command "SET NZ, @CHN_DSP_BIT, (HL)" on the sixth line sets the bit indicated by @CHN_DSP_BIT (here, bit 7) in the address value indicated by the HL register (main display data buffer 2) to 1 if the result of the operation of the command "AND A, 00000011B" on the fifth line is not zero (if the zero flag is not set). In this way, similar to Figure 203 (a), it is possible to set bit 7 of main display data buffer 2 according to the value of the lower 2 bits of the output port 2 image.

ここで、図203(a)に示したDYNMOUTモジュールのコマンドの総コマンドサイズは、2行目のコマンド「RESQ @CHN_DSP_BIT,(LOW _WIN_DAT+1)」3バイト+3行目のコマンド「LDQ A,(LOW _OUT_PT2)」2バイト+4行目のコマンド「JAND Z,A,00000011B,DYNMOUT02」3バイト+5行目のコマンド「SETQ @CHN_DSP_BIT,(LOW _WIN_DAT+1)」3バイト=11バイトとなり、総実行サイクルは、出力ポート2イメージの下位2ビットが0でない場合、2行目6サイクル+3行目3サイクル+4行目3サイクル+5行目6サイクル=18サイクルとなり、出力ポート2イメージの下位2ビットがいずれも0であった場合、2行目6サイクル+3行目3サイクル+4行目4サイクル=13サイクルとなる。 Here, the total command size of the DYNMOUT module commands shown in FIG. 203(a) is the command on the second line "RESQ @CHN_DSP_BIT, (LOW _WIN_DAT+1)" (3 bytes) + the command on the third line "LDQ A, (LOW _OUT_PT2)" (2 bytes) + the command on the fourth line "JAND Z, A, 00000011B, DYNMOUT02" (3 bytes) + the command on the fifth line "SETQ @CHN_DSP_BIT, (LOW _WIN_DAT+1) (3 bytes) = 11 bytes, and the total execution cycles are 6 cycles on line 2 + 3 cycles on line 3 + 3 cycles on line 4 + 6 cycles on line 5 = 18 cycles if the lowest 2 bits of the output port 2 image are not 0, and 6 cycles on line 2 + 3 cycles on line 3 + 4 cycles on line 4 = 13 cycles if both lowest 2 bits of the output port 2 image are 0.

一方、図203(b)に示したDYNMOUTモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LDQ HL,LOW _WIN_DAT+1」2バイト+3行目のコマンド「RES @CHN_DSP_BIT,(HL)」2バイト+4行目のコマンド「LDQ A,(LOW _OUT_PT2)」2バイト+5行目のコマンド「AND A,00000011B」2バイト+6行目のコマンド「SET NZ,@CHN_DSP_BIT,(HL)」2バイト=10バイトとなり、総実行サイクルは、出力ポート2イメージの下位2ビットが0でない場合、2行目2サイクル+3行目5サイクル+4行目3サイクル+5行目2サイクル+6行目5サイクル=17サイクルとなり、出力ポート2イメージの下位2ビットがいずれも0であった場合、2行目2サイクル+3行目5サイクル+4行目3サイクル+5行目2サイクル+6行目2サイクル=14サイクルとなる。したがって、図203(a)の場合と比べ、総コマンドサイズが1バイト削減されていることが理解できる。かかるDYNMOUTモジュールによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 On the other hand, the total command size of the DYNMOUT module commands shown in Figure 203 (b) is the command on the second line "LDQ HL, LOW _WIN_DAT+1" (2 bytes) + the command on the third line "RES @CHN_DSP_BIT, (HL)" (2 bytes) + the command on the fourth line "LDQ A, (LOW _OUT_PT2)" (2 bytes) + the command on the fifth line "AND A, 00000011B" (2 bytes) + the command on the sixth line "SET NZ, @CHN_DSP_BIT, (HL)" 2 bytes = 10 bytes, and the total execution cycles are 2 cycles on line 2 + 5 cycles on line 3 + 3 cycles on line 4 + 2 cycles on line 5 + 5 cycles on line 6 = 17 cycles if the lowest 2 bits of the output port 2 image are not 0, and 2 cycles on line 2 + 5 cycles on line 3 + 3 cycles on line 4 + 2 cycles on line 5 + 2 cycles on line 6 = 14 cycles if both lowest 2 bits of the output port 2 image are 0. Therefore, it can be seen that the total command size has been reduced by 1 byte compared to the case of FIG. 203(a). This DYNMOUT module makes it possible to further shorten the command and ensure the capacity of the control area for performing game control processing.

図204は、EXT_PRCモジュールを説明するための説明図である。図26のステップS400-29で示したEXT_PRCモジュールでは、メインCPU500aが、外部情報管理処理、すなわち、遊技情報出力端子板312から外部へ出力する外部情報用の出力データをセットする。 Figure 204 is an explanatory diagram for explaining the EXT_PRC module. In the EXT_PRC module shown in step S400-29 of Figure 26, the main CPU 500a performs external information management processing, i.e., sets output data for external information to be output from the game information output terminal board 312 to the outside.

図204(a)の1行目の指標「EXT_PRC:」は、当該EXT_PRCモジュールの先頭アドレスを示す。2行目のコマンド「LD BC,@D_SEC_LOP*256+0」によって、Bレジスタにチェック対象ラム数(ループ回数)である@D_SEC_LOP(ここでは8)が設定され、Cレジスタに合成ビットデータの初期値として0が設定される。3行目のコマンド「JR Z,EXT_PRC_15」によって、そのコマンドを実行する以前に演算された対象ラムアドレスの論理積がゼロであるか否か判定され、ゼロであれば(ゼロフラグが立っていれば)、5行目の指標「EXT_PRC_15:」に移動し、ゼロでなければ(ゼロフラグが立っていなければ)、4行目の処理を行う。4行目のコマンド「SET @EXT_SEC_POS,C」によって、Cレジスタの値(合成ビットデータ)の@EXT_SEC_POSで定義される値(ここでは、ビット6)のビットを立たせる。5行目の指標「EXT_PRC_15:」は3行目のコマンド「JR Z,EXT_PRC_15」の移動先を示す。こうして、対象ラムアドレスの論理積の演算結果に応じて合成ビットデータのビット6を設定することが可能となる。 The index "EXT_PRC:" on the first line of Figure 204(a) indicates the starting address of the EXT_PRC module. The command "LD BC, @D_SEC_LOP * 256 + 0" on the second line sets the number of RAMs to be checked (number of loops), @D_SEC_LOP (here 8), in the B register, and sets 0 as the initial value of the composite bit data in the C register. The command "JR Z, EXT_PRC_15" on the third line determines whether the logical product of the target RAM address calculated before executing the command is zero, and if it is zero (if the zero flag is set), it moves to the index "EXT_PRC_15:" on the fifth line, and if it is not zero (if the zero flag is not set), it performs the processing on the fourth line. The command on line 4, "SET @EXT_SEC_POS, C," sets the bit of the value (here, bit 6) defined by @EXT_SEC_POS in the value of the C register (composite bit data). The index on line 5, "EXT_PRC_15:," indicates the destination of the command on line 3, "JR Z, EXT_PRC_15." In this way, it becomes possible to set bit 6 of the composite bit data according to the result of the logical AND operation of the target RAM address.

ここで、コマンド「SET」への置き換えを行うと、図204(a)のコマンド群を図204(b)のように変更することができる。図204(b)の1行目の指標「EXT_PRC:」は、当該EXT_PRCモジュールの先頭アドレスを示す。2行目のコマンド「LD BC,@D_SEC_LOP*256+0」によって、Bレジスタにチェック対象ラム数(ループ回数)である@D_SEC_LOP(ここでは8)が設定され、Cレジスタに合成ビットデータの初期値として0が設定される。3行目のコマンド「SET NZ,@EXT_SEC_POS,C」によって、そのコマンドが実行される以前に演算された対象ラムアドレスの論理積がゼロであるか否か判定され、ゼロでなければ(ゼロフラグが立っていなければ)、Cレジスタの値(合成ビットデータ)の@EXT_SEC_POSで定義される値(ここでは、ビット6)のビットを立たせる。こうして、図204(a)同様、対象ラムアドレスの論理積の演算結果に応じて合成ビットデータのビット6を設定することが可能となる。 If the command "SET" is substituted here, the command group in FIG. 204(a) can be changed to that in FIG. 204(b). The index "EXT_PRC:" in the first line of FIG. 204(b) indicates the start address of the EXT_PRC module. The command "LD BC, @D_SEC_LOP*256+0" in the second line sets the number of RAMs to be checked (loop count) @D_SEC_LOP (here, 8) in the B register, and sets 0 as the initial value of the composite bit data in the C register. The command "SET NZ, @EXT_SEC_POS, C" in the third line determines whether the logical product of the target RAM address calculated before the command is executed is zero, and if it is not zero (if the zero flag is not set), the bit of the value (here, bit 6) defined by @EXT_SEC_POS in the value of the C register (composite bit data) is set. In this way, similar to FIG. 204(a), it is possible to set bit 6 of the composite bit data according to the result of the logical AND operation of the target RAM address.

ここで、図204(a)に示したEXT_PRCモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LD BC,@D_SEC_LOP*256+0」2バイト+3行目のコマンド「JR Z,EXT_PRC_15」2バイト+4行目のコマンド「SET @EXT_SEC_POS,C」2バイト=6バイトとなり、総実行サイクルは、論理積が0でない場合、2行目2サイクル+3行目2サイクル+4行目2サイクル=6サイクルとなり、論理積が0であった場合、2行目2サイクル+3行目3サイクル=5サイクルとなる。 The total command size of the commands in the EXT_PRC module shown in Figure 204(a) is 2 bytes of the command on line 2 "LD BC, @D_SEC_LOP * 256 + 0" + 2 bytes of the command on line 3 "JR Z, EXT_PRC_15" + 2 bytes of the command on line 4 "SET @EXT_SEC_POS, C" = 6 bytes, and the total execution cycles are 2 cycles on line 2 + 2 cycles on line 3 + 2 cycles on line 4 = 6 cycles if the logical product is not 0, and 2 cycles on line 2 + 3 cycles on line 3 = 5 cycles if the logical product is 0.

一方、図204(b)に示したEXT_PRCモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LD BC,@D_SEC_LOP*256+0」2バイト+3行目のコマンド「SET NZ,@EXT_SEC_POS,C」2バイト=4バイトとなり、総実行サイクルは、論理積が0でない場合、2行目2サイクル+3行目5サイクル=7サイクルとなり、論理積が0であった場合、2行目2サイクル+3行目2サイクル=4サイクルとなる。したがって、図204(a)の場合と比べ、総コマンドサイズが2バイト削減されていることが理解できる。かかるEXT_PRCモジュールによって、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 On the other hand, the total command size of the commands of the EXT_PRC module shown in FIG. 204(b) is 2 bytes of the command on the second line "LD BC, @D_SEC_LOP * 256 + 0" + 2 bytes of the command on the third line "SET NZ, @EXT_SEC_POS, C" = 4 bytes, and the total execution cycles are 2 cycles on the second line + 5 cycles on the third line = 7 cycles if the logical product is not 0, and 2 cycles on the second line + 2 cycles on the third line = 4 cycles if the logical product is 0. Therefore, it can be seen that the total command size has been reduced by 2 bytes compared to the case of FIG. 204(a). With this EXT_PRC module, it is possible to further shorten the commands and ensure the capacity of the control area for performing game control processing.

<コマンド「JANDQ」>
図205は、STOPDCTモジュールの具体的な処理を示したフローチャートである。ここでは、任意の処理として、図92のステップS2500で示した回胴回転中処理を実行するSTOPDCTモジュールの一部である停止表示器を確認する処理S2500-23を挙げて説明する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。また、当該STOPDCTモジュールの説明中、所定のレジスタはHLレジスタである。
<Command "JANDQ">
Fig. 205 is a flow chart showing the specific processing of the STOPDCT module. Here, as an optional processing, the processing S2500-23 for checking the stop indicator, which is a part of the STOPDCT module that executes the processing during reel rotation shown in step S2500 of Fig. 92, is explained. The numerical values of step S in this figure are used only in the explanation of this figure. In addition, in the explanation of the STOPDCT module, the specified register is the HL register.

メインCPU500aは、図205のように、任意の処理を実行する。メインCPU500aは、まず、操作対象ビットの抽出処理を行う(S1)。かかる処理により、Aレジスタには、操作対象ビットが設定される。そして、メインCPU500aは、Aレジスタの操作対象ビットと、予めDレジスタに設定されている回動回転中フラグとの合成を行う(S2)。続いて、メインCPU500aは、停止表示器を示すアドレスの値と論理積をとることで停止表示器を確認し(S3)、停止表示器が赤色点灯中であれば(S4におけるYES)、当該STOPDCTモジュールの先頭から処理を繰り返し、停止表示器が赤色点灯中でなければ(S4におけるNO)、次の処理を実行する。そして、回転停止処理を実行するSTP_RELモジュールに移動することで、当該STOPDCTモジュールを終了する(S5)。こうして、停止表示器の状態に応じた押下処理が可能となる。 The main CPU 500a executes any process as shown in FIG. 205. First, the main CPU 500a extracts the bit to be operated (S1). This process sets the bit to be operated in the A register. Then, the main CPU 500a combines the bit to be operated in the A register with the rotation in progress flag previously set in the D register (S2). Next, the main CPU 500a checks the stop indicator by performing a logical AND with the address value indicating the stop indicator (S3). If the stop indicator is lit red (YES in S4), the process is repeated from the beginning of the STOPDCT module, and if the stop indicator is not lit red (NO in S4), the next process is executed. Then, the STOPDCT module is terminated by moving to the STP_REL module that executes the rotation stop process (S5). In this way, pressing process according to the state of the stop indicator is possible.

図206は、STOPDCTモジュールを実現するためのコマンドの一例を説明するための説明図である。図205で示したフローチャートは、例えば、図206に示したプログラムによって実現される。 Figure 206 is an explanatory diagram for explaining an example of a command for implementing the STOPDCT module. The flowchart shown in Figure 205 is implemented, for example, by the program shown in Figure 206.

図206の1行目の指標「STOPDCT:」は、当該STOPDCTモジュールの先頭アドレスを示す。2行目のコマンド「CALLF SMPLBIT」は、操作対象ビット抽出処理を実行するSMPLBITモジュールを呼び出すコマンドであり、このコマンドによって操作対象となった(実際に操作された)ストップスイッチに対応するビットがAレジスタに設定される。かかる2行目のコマンドが、図205のステップS1に対応する。3行目のコマンド「AND A,D」によって、操作対象ビットが設定されたAレジスタと、予め回動回転中フラグが設定されているDレジスタとの論理積を演算し、その結果をAレジスタに保持する。かかる3行目のコマンドが、図205のステップS2に対応する。 The index "STOPDCT:" on the first line of FIG. 206 indicates the start address of the STOPDCT module. The command "CALLF SMPLBIT" on the second line is a command to call the SMPLBIT module that executes the target bit extraction process, and the bit corresponding to the stop switch that is the target of operation (actually operated) is set in the A register by this command. This command on the second line corresponds to step S1 in FIG. 205. The command "AND A, D" on the third line calculates the logical product of the A register in which the target bit is set and the D register in which the rotation in progress flag is set in advance, and stores the result in the A register. This command on the third line corresponds to step S2 in FIG. 205.

図206の4行目のコマンド「ANDQ A,(LOW _OUT_PT4)」によって、Qレジスタの値を上位1バイトとし、アドレス「_OUT_PT4」の値(第1所定値)を下位1バイトとした値(停止表示器の値)とAレジスタの値の論理積を演算し、その結果をAレジスタに保持する。かかる4行目のコマンドが、図205のステップS3に対応する。5行目のコマンド「JR Z,STOPDCT」によって、4行目のコマンド「ANDQ A,(LOW _OUT_PT4)」の演算結果がゼロであるか否か判定され、ゼロであれば(ゼロフラグが立っていれば)、1行目の指標「STOPDCT:」(第2所定値)に移動し、ゼロでなければ(ゼロフラグが立っていなければ)、次の処理を行う。かかる5行目のコマンドが、図205のステップS4に対応する。 The command "ANDQ A, (LOW _OUT_PT4)" on the fourth line of FIG. 206 calculates the logical product of the value of the Q register as the upper byte and the value of the address "_OUT_PT4" (first predetermined value) as the lower byte (the value of the stop indicator) and the value of the A register, and stores the result in the A register. This command on the fourth line corresponds to step S3 in FIG. 205. The command "JR Z, STOPDCT" on the fifth line determines whether the result of the operation of the command "ANDQ A, (LOW _OUT_PT4)" on the fourth line is zero or not. If it is zero (if the zero flag is set), it moves to the index "STOPDCT:" (second predetermined value) on the first line, and if it is not zero (if the zero flag is not set), the next process is performed. This command on the fifth line corresponds to step S4 in FIG. 205.

このように、図206に示したSTOPDCTモジュールのコマンドの総コマンドサイズは、2行目のコマンド「CALLF SMPLBIT」2バイト+3行目のコマンド「AND A,D」1バイト+4行目のコマンド「ANDQ A,(LOW _OUT_PT4)」3バイト+5行目のコマンド「JR Z,STOPDCT」2バイト=8バイトとなり、総実行サイクルは、2行目4サイクル+3行目1サイクル+4行目4サイクル+5行目3サイクル(2サイクル)=12サイクル(11サイクル)となる。なお、括弧内のサイクル数は、コマンド「JR Z,STOPDCT」によって移動しなかった場合の実行サイクルを示している。かかるSTOPDCTモジュールにおいて4、5行目の処理を設けることによって、停止表示器の状態に応じた押下処理が可能となる。 In this way, the total command size of the STOPDCT module commands shown in FIG. 206 is 2 bytes of the command "CALLF SMPLBIT" on the second line + 1 byte of the command "AND A, D" on the third line + 3 bytes of the command "ANDQ A, (LOW _OUT_PT4)" on the fourth line + 2 bytes of the command "JR Z, STOPDCT" on the fifth line = 8 bytes, and the total execution cycle is 4 cycles on the second line + 1 cycle on the third line + 4 cycles on the fourth line + 3 cycles (2 cycles) on the fifth line = 12 cycles (11 cycles). The number of cycles in parentheses indicates the execution cycle when no movement is made by the command "JR Z, STOPDCT". By providing the processing on the fourth and fifth lines in this STOPDCT module, it becomes possible to perform pressing processing according to the state of the stop indicator.

図207は、STOPDCTモジュールを実現するためのコマンドの他の例を説明するための説明図である。ここでは、図206のSTOPDCTモジュールのコマンド群を、図207のSTOPDCTモジュールのコマンド群に置き換えている。 Figure 207 is an explanatory diagram for explaining another example of commands for implementing the STOPDCT module. Here, the command group of the STOPDCT module in Figure 206 is replaced with the command group of the STOPDCT module in Figure 207.

図207の1行目の指標「STOPDCT:」は、当該STOPDCTモジュールの先頭アドレスを示す。2行目のコマンド「CALLF SMPLBIT」は、操作対象ビット抽出処理を実行するSMPLBITモジュールを呼び出すコマンドであり、このコマンドによって操作対象となったストップスイッチに対応するビットがAレジスタに設定される。かかる2行目のコマンドが、図205のステップS1に対応する。3行目のコマンド「AND A,D」によって、操作対象ビットが設定されたAレジスタと、予め回動回転中フラグが設定されているDレジスタとの論理積を演算し、その結果をAレジスタに保持する。かかる3行目のコマンドが、図205のステップS2に対応する。 The index "STOPDCT:" on the first line of FIG. 207 indicates the start address of the STOPDCT module. The command "CALLF SMPLBIT" on the second line is a command to call the SMPLBIT module that executes the target bit extraction process, and the bit corresponding to the stop switch that is the target of operation is set in the A register by this command. This command on the second line corresponds to step S1 in FIG. 205. The command "AND A, D" on the third line calculates the logical product of the A register in which the target bit is set and the D register in which the rotation in progress flag has been set in advance, and stores the result in the A register. This command on the third line corresponds to step S2 in FIG. 205.

図207の4行目のコマンド「JANDQ Z,A,(LOW _OUT_PT4),STOPDCT」によって、Qレジスタの値を上位1バイトとし、アドレス「_OUT_PT4」の値(第1所定値)を下位1バイトとした値(停止表示器の値)とAレジスタの値の論理積を演算し、その演算結果がゼロであるか否か判定され、ゼロであれば(ゼロフラグが立っていれば)、1行目の指標「STOPDCT:」(第2所定値)に移動し、ゼロでなければ(ゼロフラグが立っていなければ)、次の処理を行う。かかる4行目のコマンドが、図205のステップS3、S4に対応する。 The command "JANDQ Z, A, (LOW _OUT_PT4), STOPDCT" on the fourth line of Fig. 207 calculates the logical product of the value of the Q register as the most significant byte and the value of the address "_OUT_PT4" (first predetermined value) as the least significant byte (the value of the stop indicator) and the value of the A register, and determines whether the result of this calculation is zero or not. If it is zero (if the zero flag is set), it moves to the index "STOPDCT:" (second predetermined value) on the first line, and if it is not zero (if the zero flag is not set), the next process is performed. This command on the fourth line corresponds to steps S3 and S4 in Fig. 205.

ここで、コマンド「JANDQ cc,A,(k),e」は、Qレジスタの値を上位1バイトとし、kで示されるアドレスの値を下位1バイトとした値(第1所定値)と、Aレジスタの値の論理積を演算し、その演算結果について、ccに対応するフラグ(ゼロフラグやキャリーフラグ)が真であれば、e(第2所定値)で示されるアドレスに移動し、ccに対応するフラグが真でなければ、次の処理に移るコマンドである。かかるコマンドのコマンドサイズは「4」であり、実行サイクルは「6」(「5」)である。なお、括弧内のサイクル数は、コマンド「JANDQ cc,A,(k),e」においてフラグが真ではなかった場合の実行サイクルを示している。 Here, the command "JANDQ cc, A, (k), e" calculates the logical AND of the value of the A register, with the value of the Q register as the upper byte and the value of the address indicated by k as the lower byte (first predetermined value), and if the flag corresponding to cc (zero flag or carry flag) of the calculation result is true, it moves to the address indicated by e (second predetermined value), and if the flag corresponding to cc is not true, it moves to the next process. The command size of this command is "4", and the execution cycle is "6" ("5"). Note that the number of cycles in parentheses indicates the execution cycle when the flag is not true in the command "JANDQ cc, A, (k), e".

図207に示したSTOPDCTモジュールのコマンドの総コマンドサイズは、2行目のコマンド「CALLF SMPLBIT」2バイト+3行目のコマンド「AND A,D」1バイト+4行目のコマンド「JANDQ Z,A,(LOW _OUT_PT4),STOPDCT」4バイト=7バイトとなり、総実行サイクルは、2行目4サイクル+3行目1サイクル+4行目6サイクル(5サイクル)=11サイクル(10サイクル)となる。なお、括弧内のサイクル数は、コマンド「JANDQ Z,A,(LOW _OUT_PT4),STOPDCT」によって移動しなかった場合の実行サイクルを示している。したがって、図206の場合と比べ、総コマンドサイズが1バイト削減され、総実行サイクルが少なくとも1サイクル削減される。かかるSTOPDCTモジュールによって、コマンドの更なる短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 The total command size of the STOPDCT module commands shown in FIG. 207 is 2 bytes of the command "CALLF SMPLBIT" on the second line + 1 byte of the command "AND A, D" on the third line + 4 bytes of the command "JANDQ Z, A, (LOW _OUT_PT4), STOPDCT" on the fourth line = 7 bytes, and the total execution cycle is 4 cycles on the second line + 1 cycle on the third line + 6 cycles (5 cycles) on the fourth line = 11 cycles (10 cycles). The number of cycles in parentheses indicates the execution cycle when no movement is made by the command "JANDQ Z, A, (LOW _OUT_PT4), STOPDCT". Therefore, compared to the case of FIG. 206, the total command size is reduced by 1 byte, and the total execution cycle is reduced by at least 1 cycle. This STOPDCT module makes it possible to further shorten the command and reduce the processing load, and to secure the capacity of the control area for performing game control processing.

また、図206と図207とを比較して理解できるように、図206において2行(4行目、5行目)を占有していたコマンド群を、図207においては1行(4行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 206 and 207, the command group that occupies two lines (lines 4 and 5) in Figure 206 can be represented in one line (line 4) in Figure 207, making it possible to reduce the number of commands and lighten the design load.

<コマンド「CALLEX」>
E_SETTMモジュールは、図89のステップS2200-11や図95のステップS2800-39で示したエラーウェイト処理を実行するERRWAITモジュールにおいて、投入異常非監視タイマ設定処理、すなわち、投入異常非監視タイマを設定するためのモジュールである。なお、E_SETTMモジュールは、メインROM500bの別領域(2000H~3FBFH)に配される。
<Command "CALLEX">
The E_SETTM module is a module for setting an abnormality non-monitoring timer for turning on, that is, for setting an abnormality non-monitoring timer for turning on, in the ERRWAIT module that executes the error wait process shown in step S2200-11 of Fig. 89 and step S2800-39 of Fig. 95. The E_SETTM module is allocated in another area (2000H to 3FBFH) of the main ROM 500b.

メインCPU500aは、メインROM500bから使用領域のプログラムを読み出し、読み出したプログラムを遂行し、任意の処理において、サブルーチンとして別領域のE_SETTMモジュールを呼び出し、E_SETTMモジュールを遂行する。E_SETTMモジュールでは、投入異常非監視タイマを設定する。 The main CPU 500a reads the program in the use area from the main ROM 500b, executes the read program, and in any process, calls the E_SETTM module in another area as a subroutine and executes the E_SETTM module. The E_SETTM module sets a timer for non-monitoring of abnormal input.

図208は、E_SETTMモジュールの具体的な処理を示したフローチャートである。ここでは、任意の処理として、図89のステップS2200-11や図95のステップS2800-39で示したエラーウェイト処理を実行するERRWAITモジュールにおいて、ブロッカー閉塞処理を実行するBLKSHUTモジュールの一部を挙げて説明する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。 Figure 208 is a flowchart showing the specific processing of the E_SETTM module. Here, as an optional process, a part of the BLKSHUT module that executes the blocker blocking process in the ERRWAIT module that executes the error wait process shown in step S2200-11 in Figure 89 and step S2800-39 in Figure 95 is explained. The numerical values of step S in this figure will be used only in the explanation of this figure.

メインCPU500aは、図208(a)のように、任意の処理を実行する。メインCPU500aは、ブロッカー状態を確認して、出力ポート4イメージのビット3(ブロッカーソレノイド出力ビット番号)が0ではない場合に、別領域のE_SETTMモジュールを呼び出す。このため、メインCPU500aは、まず、割込を禁止し(S1)、サブルーチンとして別領域のE_SETTMモジュールを呼び出す(S2)。 The main CPU 500a executes any process as shown in FIG. 208(a). The main CPU 500a checks the blocker state, and if bit 3 of the output port 4 image (blocker solenoid output bit number) is not 0, it calls the E_SETTM module in another area. For this reason, the main CPU 500a first prohibits interrupts (S1), and calls the E_SETTM module in another area as a subroutine (S2).

メインCPU500aは、図208(b)のように、E_SETTMモジュールにおいて、汎用レジスタ(Aレジスタ、Bレジスタ、Cレジスタ、Dレジスタ、Eレジスタ、Hレジスタ、Lレジスタ、Fレジスタ)を退避する(S3)。そして、メインCPU500aは、初期値としての投入異常非監視タイマ値をAレジスタに設定し(S4)、そのAレジスタの値を所定のアドレス(投入異常非監視タイマ)が示す値に格納して、投入異常非監視タイマを設定する(S5)。かかる処理が完了すると、メインCPU500aは、汎用レジスタを復帰させ(S6)、割込を許可し(S7)、当該E_SETTMモジュールを終了して1段上のルーチンに戻る(S8)。 As shown in FIG. 208(b), the main CPU 500a saves the general-purpose registers (A register, B register, C register, D register, E register, H register, L register, F register) in the E_SETTM module (S3). The main CPU 500a then sets the initial value of the on-chip abnormality non-monitoring timer value in the A register (S4), stores the value of the A register at a specified address (on-chip abnormality non-monitoring timer), and sets the on-chip abnormality non-monitoring timer (S5). When this process is complete, the main CPU 500a restores the general-purpose registers (S6), enables interrupts (S7), and ends the E_SETTM module to return to the routine one step above (S8).

ここで、E_SETTMモジュールは、遊技機の公正さを担保しつつ、使用領域と別領域とで適切に役割分担するための、上述した(1)~(6)の条件を全て満たすように設計されている。 The E_SETTM module is designed to meet all of the above conditions (1) to (6) in order to ensure the fairness of the gaming machine while properly dividing roles between the use area and the other area.

図209は、E_SETTMモジュールを実現するためのコマンドの一例を説明するための説明図である。このうち、図209(a)は、E_SETTMモジュールを呼び出す任意の処理のコマンド群を示し、図209(b)は、E_SETTMモジュールのコマンド群を示す。図208で示したフローチャートは、例えば、図209に示したプログラムによって実現される。 Figure 209 is an explanatory diagram for explaining an example of commands for implementing the E_SETTM module. Of these, Figure 209(a) shows a command group for an arbitrary process that calls the E_SETTM module, and Figure 209(b) shows a command group for the E_SETTM module. The flowchart shown in Figure 208 is implemented, for example, by the program shown in Figure 209.

図209(a)の1行目のコマンド「DI」によって、割込が禁止される。かかる1行目のコマンドが、図208(a)のステップS1に対応する。2行目のコマンド「CALL E_SETTM」によって、サブルーチンとしてE_SETTMモジュールが呼び出される。かかる2行目のコマンドが、図208(a)のステップS2に対応する。 The command "DI" on the first line of Fig. 209(a) disables interrupts. This command on the first line corresponds to step S1 in Fig. 208(a). The command "CALL E_SETTM" on the second line calls the E_SETTM module as a subroutine. This command on the second line corresponds to step S2 in Fig. 208(a).

図209(b)の1行目の指標「E_SETTM:」は、当該E_SETTMモジュールの先頭アドレスを示す。2行目のコマンド「EX AF,AF’」によって、ペアレジスタAFの値と裏レジスタであるペアレジスタAF’の値とが入れ替わり、ペアレジスタAFの値が退避される。3行目のコマンド「EXX」によって、ペアレジスタBC、DE、HLの値と裏レジスタであるペアレジスタBC’、DE’、HL’の値とが入れ替わり、ペアレジスタBC、DE、HLの値が退避される。かかる2、3行目のコマンドが、図208(b)のステップS3に対応する。 The index "E_SETM:" on the first line of FIG. 209(b) indicates the starting address of the E_SETM module. The command "EX AF, AF'" on the second line swaps the value of pair register AF with the value of pair register AF', which is a back register, and saves the value of pair register AF. The command "EXX" on the third line swaps the values of pair registers BC, DE, and HL with the values of pair registers BC', DE', and HL', which are back registers, and saves the values of pair registers BC, DE, and HL. These commands on the second and third lines correspond to step S3 in FIG. 208(b).

図209(b)の4行目のコマンド「LD A,@MDL_WAT_TMR」によって、固定値「@MDL_WAT_TMR」、すなわち、投入異常非監視タイマ値(初期値)としての250.32msecに相当する(252/6+1)がAレジスタに読み出される。かかる4行目のコマンドが、図208(b)のステップS4に対応する。5行目のコマンド「LD (_EX_SLTM),A」によって、投入異常非監視タイマとしての変数「_EX_SLTM」にAレジスタの値を格納する。かかる5行目のコマンドが、図208(b)のステップS5に対応する。こうして、投入異常非監視タイマに投入異常非監視タイマ値を設定することが可能となる。 The command "LD A, @MDL_WAT_TMR" on the fourth line of FIG. 209(b) reads the fixed value "@MDL_WAT_TMR", i.e., (252/6 + 1) equivalent to 250.32 msec as the power-on abnormality non-monitoring timer value (initial value) into the A register. This command on the fourth line corresponds to step S4 in FIG. 208(b). The command "LD (_EX_SLTM), A" on the fifth line stores the value of the A register in the variable "_EX_SLTM" as the power-on abnormality non-monitoring timer. This command on the fifth line corresponds to step S5 in FIG. 208(b). In this way, it is possible to set the power-on abnormality non-monitoring timer value in the power-on abnormality non-monitoring timer.

図209(b)の6行目のコマンド「EXX」によって、ペアレジスタBC、DE、HLの値と裏レジスタであるペアレジスタBC’、DE’、HL’の値とが入れ替わり、ペアレジスタBC、DE、HLの値が復帰する。7行目のコマンド「EX AF,AF’」によって、ペアレジスタAFの値と裏レジスタであるペアレジスタAF’の値とが入れ替わり、ペアレジスタAFの値が復帰する。かかる6、7行目のコマンドが、図208(b)のステップS6に対応する。図209(b)の8行目のコマンド「EI」によって、割込が許可される。なお、ここでは、サブルーチンから戻る前にコマンド「EI」を行っても適切に割込が許可される。したがって、サブルーチン内にコマンド「EI」を記述することで、使用領域の容量を確保することが可能となる。かかる8行目のコマンドが、図208(b)のステップS7に対応する。そして、9行目のコマンド「RET」によって、1段上のルーチンに戻る。かかる9行目のコマンドが、図208(b)のステップS8に対応する。こうして、別領域において投入異常非監視タイマを設定することが可能となる。 The command "EXX" on the sixth line in FIG. 209(b) swaps the values of the pair registers BC, DE, and HL with the values of the pair registers BC', DE', and HL', which are backed up registers, and restores the values of the pair registers BC, DE, and HL. The command "EX AF, AF'" on the seventh line swaps the value of the pair register AF with the value of the pair register AF', which is a backed up register, and restores the value of the pair register AF. These commands on the sixth and seventh lines correspond to step S6 in FIG. 208(b). The command "EI" on the eighth line in FIG. 209(b) allows interrupts. Note that here, even if the command "EI" is executed before returning from the subroutine, interrupts are properly allowed. Therefore, by describing the command "EI" in the subroutine, it is possible to secure the capacity of the used area. This command on the eighth line corresponds to step S7 in FIG. 208(b). Then, the command "RET" on the ninth line returns to the routine one level above. The command on line 9 corresponds to step S8 in FIG. 208(b). In this way, it is possible to set a non-monitoring timer for abnormal power-on in a separate area.

このように、図209(a)に示したBLKSHUTモジュールと図209(b)に示したE_SETTMモジュールの総コマンドサイズは、図209(a)の1行目のコマンド「DI」1バイト+2行目のコマンド「CALL E_SETTM」3バイト+図209(b)の2行目のコマンド「EX AF,AF’」1バイト+3行目のコマンド「EXX」1バイト+4行目のコマンド「LD A,@MDL_WAT_TMR」2バイト+5行目のコマンド「LD (_EX_SLTM),A」4バイト+6行目のコマンド「EXX」1バイト+7行目のコマンド「EX AF,AF’」1バイト+8行目のコマンド「EI」1バイト+9行目のコマンド「RET」1バイト=16バイトであり、総実行サイクルは、図209(a)の1行目1サイクル+2行目5サイクル+図209(b)の2行目1サイクル+3行目1サイクル+4行目2サイクル+5行目4サイクル+6行目1サイクル+7行目1サイクル+8行目1サイクル+9行目3サイクル=20サイクルとなる。かかるE_SETTMモジュールを設けることによって、上述した各モジュール内で投入異常非監視タイマを設定することなく、コマンドサイズ3バイトのコマンド「CALL E_SETTM」で賄うことができるので、コマンドの短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 In this way, the total command size of the BLKSHUT module shown in Fig. 209(a) and the E_SETTM module shown in Fig. 209(b) is 1 byte of the command "DI" on the first line of Fig. 209(a) + 3 bytes of the command "CALL E_SETTM" on the second line + 1 byte of the command "EX AF, AF'" on the second line of Fig. 209(b) + 1 byte of the command "EXX" on the third line + 2 bytes of the command "LD A, @MDL_WAT_TMR" on the fourth line + 4 bytes of the command "LD (_EX_SLTM), A" on the fifth line + 1 byte of the command "EXX" on the sixth line + 1 byte of the command "EX AF,AF' 1 byte + EI command on line 8 1 byte + RET command on line 9 1 byte = 16 bytes, and the total execution cycle is 1 cycle on line 1 of FIG. 209(a) + 5 cycles on line 2 of FIG. 209(b) + 1 cycle on line 2 of FIG. 209(b) + 1 cycle on line 3 of FIG. 209(b) + 2 cycles on line 4 of FIG. 5 of FIG. 6 of FIG. 7 of FIG. 8 of FIG. 9 of FIG. 10 of FIG. 11 of FIG. 12 of FIG. 13 of FIG. 14 of FIG. 15 of FIG. 16 of FIG. 17 of FIG. 18 of FIG. 19 of FIG. 209(b) + 1 cycle on line 3 of FIG. 209(b) + 2 cycles on line 4 of FIG. 5 of FIG. 6 of FIG. 7 of FIG. 8 of FIG. 9 of FIG. 19 of FIG. 18 of FIG. 19 of FIG. 19 of FIG. 209(b) + 1 cycle on line 6 of FIG. 19 of FIG. 209(b) + 1 cycle on line 7 of FIG. 209(b) + 1 cycle on line 8 of FIG. 209(b) + 3 cycles on line 9 of FIG. 20 of FIG. 209(b) of FIG. 209(b). By providing such an E_SETTM module, it is possible to use the 3-byte command CALL E_SETTM without setting an insertion abnormality non-monitoring timer in each of the above-mentioned modules, and this can be achieved by shortening the command and ensuring the capacity of the control area for performing game control processing.

図210は、E_SETTMモジュールを実現するためのコマンドの他の例を説明するための説明図である。ここでは、図209(a)のE_SETTMモジュールを呼び出す任意の処理のコマンド群を、図210(a)のE_SETTMモジュールを呼び出す任意の処理のコマンド群に置き換え、図209(b)のE_SETTMモジュールのコマンド群を、図210(b)のE_SETTMモジュールのコマンド群に置き換えている。 Figure 210 is an explanatory diagram for explaining another example of commands for implementing the E_SETTM module. Here, the command group for any process that calls the E_SETTM module in Figure 209(a) is replaced with the command group for any process that calls the E_SETTM module in Figure 210(a), and the command group for the E_SETTM module in Figure 209(b) is replaced with the command group for the E_SETTM module in Figure 210(b).

図210(a)の1行目のコマンド「CALLEX E_SETTM」によって、サブルーチンとしてE_SETTMモジュールが呼び出される。かかる1行目のコマンドが、図208(a)のステップS2に対応する。 The command "CALLEX E_SETTM" on the first line of Fig. 210(a) calls the E_SETTM module as a subroutine. This command on the first line corresponds to step S2 in Fig. 208(a).

ここで、コマンド「CALLEX mn」は、コマンド「CALL mn」同様、固定値mnで示される先頭アドレスを有するサブルーチンを呼び出すコマンドである。ただし、コマンド「CALLEX mn」は、コマンド「CALL mn」のように、単にサブルーチンを呼び出すだけでなく、複数の機能を有している。例えば、当該コマンドを実行することで、自動的に、ノンマスカブル割込(NMI)およびマスカブル割込(INT)を禁止し、レジスタのバンクを第1レジスタバンク726から第2レジスタバンク728に切り換えてから固定値mnで示される先頭アドレスを有するサブルーチンを呼び出す。したがって、割込に関するコマンド「DI」や、退避に関するコマンド「EX AF,AF’」、「EXX」(または、コマンド「PUSH」)を要さない。したがって、図210(a)の1行目のコマンド「CALLEX E_SETTM」は、図208(a)のステップS2のみならず、図208(a)のステップS1および図208(b)のステップS3にも対応する。かかるコマンドのコマンドサイズは「2」であり、実行サイクルは「4」である。 Here, the command "CALLEX mn" is a command that calls a subroutine having a starting address indicated by a fixed value mn, just like the command "CALL mn". However, the command "CALLEX mn" does not simply call a subroutine like the command "CALL mn", but has multiple functions. For example, by executing this command, the non-maskable interrupt (NMI) and maskable interrupt (INT) are automatically prohibited, the register bank is switched from the first register bank 726 to the second register bank 728, and then a subroutine having a starting address indicated by a fixed value mn is called. Therefore, there is no need for the interrupt-related command "DI" or the save-related commands "EX AF, AF'" and "EXX" (or the command "PUSH"). Therefore, the command "CALLEX E_SETTM" on the first line of FIG. 210(a) corresponds not only to step S2 of FIG. 208(a), but also to step S1 of FIG. 208(a) and step S3 of FIG. 208(b). The command size of this command is "2" and the execution cycle is "4".

ただし、コマンド「CALLEX mn」には、所定の制限がある。例えば、呼び出し先アドレスがアドレスマップ上の2000H~20FFHの範囲であれば、コマンドのコマンドサイズは「2」であり、実行サイクルは「4」であるが、それ以外の範囲では、コマンドのコマンドサイズは「4」であり、実行サイクルは「6」となる。したがって、コマンドの短縮化を図るため、本実施形態では、呼び出し先アドレス、例えば、「E_SETTM」が2000H~20FFH内に含まれるように配置する。 However, the command "CALLEX mn" has certain limitations. For example, if the call destination address is in the range of 2000H to 20FFH on the address map, the command size of the command is "2" and the execution cycle is "4", but outside of that range, the command size of the command is "4" and the execution cycle is "6". Therefore, in order to shorten the command, in this embodiment, the call destination address, for example, "E_SETTM", is placed so that it is included within 2000H to 20FFH.

図210(b)の1行目の指標「E_SETTM:」は、当該E_SETTMモジュールの先頭アドレスを示す。2行目のコマンド「LD A,@MDL_WAT_TMR」によって、固定値「@MDL_WAT_TMR」、すなわち、投入異常非監視タイマ値(初期値)としての250.32msecに相当する(252/6+1)がAレジスタに読み出される。かかる2行目のコマンドが、図208(b)のステップS4に対応する。3行目のコマンド「LD (_EX_SLTM),A」によって、投入異常非監視タイマとしての変数「_EX_SLTM」にAレジスタの値を格納する。かかる3行目のコマンドが、図208(b)のステップS5に対応する。こうして、投入異常非監視タイマに投入異常非監視タイマ値を設定することが可能となる。 The index "E_SETTM:" on the first line of FIG. 210(b) indicates the starting address of the E_SETTM module. The command "LD A, @MDL_WAT_TMR" on the second line reads the fixed value "@MDL_WAT_TMR", i.e., (252/6+1) equivalent to 250.32 msec as the power-on abnormality non-monitoring timer value (initial value) into the A register. This command on the second line corresponds to step S4 in FIG. 208(b). The command "LD (_EX_SLTM), A" on the third line stores the value of the A register in the variable "_EX_SLTM" as the power-on abnormality non-monitoring timer. This command on the third line corresponds to step S5 in FIG. 208(b). In this way, it is possible to set the power-on abnormality non-monitoring timer value in the power-on abnormality non-monitoring timer.

図210(b)の4行目のコマンド「RETEX」によって、1段上のルーチンに戻る。かかる4行目のコマンドが、図208(b)のステップS8に対応する。こうして、別領域において投入異常非監視タイマを設定することが可能となる。 The command "RETEX" on the fourth line of Fig. 210(b) returns to the routine one level above. This command on the fourth line corresponds to step S8 in Fig. 208(b). In this way, it becomes possible to set a non-monitoring timer for abnormal switching in a separate area.

ここで、コマンド「RETEX」は、コマンド「RET」同様、1段上のルーチンに戻るコマンドである。ただし、コマンド「RETEX」は、コマンド「CALLEX mn」とペアで用いられることが多く、コマンド「RET」のように、単にサブルーチンから戻るだけでなく、複数の機能を有している。例えば、当該コマンドを実行することで、自動的に、レジスタのバンクを第2レジスタバンク728から第1レジスタバンク726に切り換え、割込を許可してから1段上のルーチンに戻る。したがって、復帰に関するコマンド「EXX」、「EX AF,AF’」(または、コマンド「POP」)や、割込に関するコマンド「EI」を要さない。したがって、図210(b)の4行目のコマンド「RETEX」は、図208(b)のステップS8のみならず、図208(b)のステップS6およびステップS7にも対応する。かかるコマンドのコマンドサイズは「2」であり、実行サイクルは「5」である。 Here, the command "RETEX" is a command to return to the routine one level above, just like the command "RET". However, the command "RETEX" is often used in pairs with the command "CALLEX mn", and unlike the command "RET", it has multiple functions in addition to simply returning from a subroutine. For example, by executing this command, the register bank is automatically switched from the second register bank 728 to the first register bank 726, an interrupt is permitted, and then the routine returns to the one level above. Therefore, there is no need for the return-related commands "EXX", "EX AF, AF'" (or the command "POP"), or the interrupt-related command "EI". Therefore, the command "RETEX" on the fourth line of FIG. 210(b) corresponds not only to step S8 in FIG. 208(b) but also to steps S6 and S7 in FIG. 208(b). The command size of this command is "2", and the execution cycle is "5".

図210(a)に示したBLKSHUTモジュールと図210(b)に示したE_SETTMモジュールの総コマンドサイズは、図210(a)の1行目のコマンド「CALLEX E_SETTM」2バイト+図210(b)の2行目のコマンド「LD A,@MDL_WAT_TMR」2バイト+3行目のコマンド「LD (_EX_SLTM),A」4バイト+4行目のコマンド「RETEX」2バイト=10バイトであり、総実行サイクルは、図210(a)の1行目4サイクル+図210(b)の2行目2サイクル+3行目4サイクル+4行目5サイクル=15サイクルとなる。したがって、図209の場合と比べ、総コマンドサイズが6バイト削減され、総実行サイクルも少なくとも5サイクル削減される。かかるE_SETTMモジュールによって、コマンドの更なる短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 The total command size of the BLKSHUT module shown in FIG. 210(a) and the E_SETTM module shown in FIG. 210(b) is 2 bytes of the command "CALLEX E_SETTM" on the first line of FIG. 210(a) + 2 bytes of the command "LD A, @MDL_WAT_TMR" on the second line of FIG. 210(b) + 4 bytes of the command "LD (_EX_SLTM), A" on the third line + 2 bytes of the command "RETEX" on the fourth line = 10 bytes, and the total execution cycle is 4 cycles on the first line of FIG. 210(a) + 2 cycles on the second line of FIG. 210(b) + 4 cycles on the third line + 5 cycles on the fourth line = 15 cycles. Therefore, compared to the case of FIG. 209, the total command size is reduced by 6 bytes, and the total execution cycle is also reduced by at least 5 cycles. This E_SETTM module makes it possible to further shorten commands and reduce processing load, while ensuring sufficient control area capacity for game control processing.

また、図209と図210とを比較して理解できるように、図209において8行(図209(a)の1、2行目および図209(b)の2、3、6~9行目)を占有していたコマンド群を、図210においては、2行(図210(a)の1行目および図210(b)の4行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 209 and 210, the command group that occupied eight lines in Figure 209 (lines 1 and 2 in Figure 209(a) and lines 2, 3, and 6 to 9 in Figure 209(b)) can be represented in two lines in Figure 210 (line 1 in Figure 210(a) and line 4 in Figure 210(b)), making it possible to reduce the number of commands and lighten the design load.

かかるコマンド「CALLEX」は、上述したBLKSHUTモジュールのみならず、様々なモジュールに採用することができる。また、スロットマシンのみならず、パチンコ機における、例えば、DYM_OUTモジュール等にも採用することができる。 This command "CALLEX" can be used not only in the BLKSHUT module described above, but also in various other modules. It can also be used not only in slot machines, but also in the DYM_OUT module in pachinko machines, for example.

図211、図212は、DYM_OUTモジュールを説明するための説明図である。図26のステップS400-5で示したDYM_OUTモジュールは、第1特別図柄表示器160、第2特別図柄表示器162、第1特別図柄保留表示器164、第2特別図柄保留表示器166、普通図柄表示器168、普通図柄保留表示器170、右打ち報知表示器172、性能表示モニタ184を点灯制御するダイナミックポート出力処理を実行する。 Figures 211 and 212 are explanatory diagrams for explaining the DYM_OUT module. The DYM_OUT module shown in step S400-5 of Figure 26 executes dynamic port output processing that controls the lighting of the first special symbol display 160, the second special symbol display 162, the first special symbol reserved display 164, the second special symbol reserved display 166, the normal symbol display 168, the normal symbol reserved display 170, the right hit notification display 172, and the performance display monitor 184.

図211(a)の1行目のコマンド「DI」によって、割込が禁止される。2行目のコマンド「CALL E_DMOUT」によって、サブルーチンとしてE_DMOUTモジュールが呼び出される。 The command "DI" on the first line of Figure 211(a) disables interrupts. The command "CALL E_DMOUT" on the second line calls the E_DMOUT module as a subroutine.

図211(b)の1行目の指標「E_DMOUT:」は、当該E_DMOUTモジュールの先頭アドレスを示す。2行目のコマンド「EX AF,AF’」によって、ペアレジスタAFの値と裏レジスタであるペアレジスタAF’の値とが入れ替わり、ペアレジスタAFの値が退避される。3行目のコマンド「EXX」によって、ペアレジスタBC、DE、HLの値と裏レジスタであるペアレジスタBC’、DE’、HL’の値とが入れ替わり、ペアレジスタBC、DE、HLの値が退避される。4行目のコマンド「LD HL,R_ERW_IOB」によって識別セグ出力要求バッファのアドレス「R_ERW_IOB」をHLレジスタに設定する。5行目のコマンド「LD A,(R_COM_CNT)」によって、「R_COM_CNT」で示されるアドレスに格納された1バイト値(コモンカウンタ)がAレジスタに読み出される。ここで、コモンカウンタはLEDダイナミック点灯制御のコモン番号を判定するために使用され、コモン番号を示す値が格納されている。6行目のコマンド「LD A,(HL+A)」によって、HLレジスタで示されるアドレスにAレジスタの値を加算した(オフセットさせた)アドレスに格納された1バイト値(表示データ)がAレジスタに読み出される。7行目のコマンド「OUT (@OTC_PRT),A」によって、Uレジスタの値をアドレスの上位1バイトとし、出力ポート12(内部レジスタI/Oポート)のアドレスの下位1バイトを示す固定値「@OTC_PRT」を下位1バイトとし、そのアドレスに、Aレジスタの値を出力する。8行目のコマンド「EXX」によって、ペアレジスタBC、DE、HLの値と裏レジスタであるペアレジスタBC’、DE’、HL’の値とが入れ替わり、ペアレジスタBC、DE、HLの値が復帰する。9行目のコマンド「EX AF,AF’」によって、ペアレジスタAFの値と裏レジスタであるペアレジスタAF’の値とが入れ替わり、ペアレジスタAFの値が復帰する。10行目のコマンド「EI」によって、割込が許可される。なお、ここでは、サブルーチンから戻る前にコマンド「EI」を行っても適切に割込が許可される。したがって、サブルーチン内にコマンド「EI」を記述することで、使用領域の容量を確保することが可能となる。そして、11行目のコマンド「RET」によって、1段上のルーチンに戻る。こうして、別領域においてダイナミックポート出力処理を実行することができる。 The index "E_DMOUT:" on the first line of FIG. 211(b) indicates the starting address of the E_DMOUT module. The command "EX AF, AF'" on the second line swaps the value of the pair register AF with the value of the back register pair register AF', and saves the value of the pair register AF. The command "EXX" on the third line swaps the values of the pair registers BC, DE, and HL with the values of the back register pair registers BC', DE', and HL', and saves the values of the pair registers BC, DE, and HL. The command "LD HL, R_ERW_IOB" on the fourth line sets the address "R_ERW_IOB" of the identification segment output request buffer in the HL register. The command "LD A, (R_COM_CNT)" on the fifth line reads a 1-byte value (common counter) stored at the address indicated by "R_COM_CNT" into the A register. Here, the common counter is used to determine the common number for LED dynamic lighting control, and a value indicating the common number is stored in it. The command "LD A, (HL+A)" on the sixth line reads out a 1-byte value (display data) stored in the address indicated by the HL register plus (offset) the value of the A register into the A register. The command "OUT (@OTC_PRT), A" on the seventh line sets the value of the U register as the upper byte of the address, sets the fixed value "@OTC_PRT" indicating the lower byte of the address of the output port 12 (internal register I/O port) as the lower byte, and outputs the value of the A register to that address. The command "EXX" on the eighth line swaps the values of the pair registers BC, DE, and HL with the values of the pair registers BC', DE', and HL', which are back registers, and restores the values of the pair registers BC, DE, and HL. The command "EX AF, AF" on line 9 swaps the value of pair register AF with the value of the back register, pair register AF', and restores the value of pair register AF. The command "EI" on line 10 enables interrupts. Note that interrupts are also enabled properly here even if the command "EI" is executed before returning from the subroutine. Therefore, by writing the command "EI" in the subroutine, it is possible to secure the capacity of the area to be used. Then, the command "RET" on line 11 returns to the routine one level above. In this way, dynamic port output processing can be executed in a separate area.

ここで、コマンド「CALLEX」への置き換えを行うと、図211のコマンド群を図212のように変更することができる。図212(a)の1行目のコマンド「CALLEX E_DMOUT」によって、サブルーチンとしてE_DMOUTモジュールが呼び出される。ここでは、呼び出し先アドレス、例えば、「E_DMOUT」が2000H~20FFH内に含まれるように配置されている。 If you replace it with the command "CALLEX" here, the command group in Figure 211 can be changed to that shown in Figure 212. The command "CALLEX E_DMOUT" on the first line of Figure 212(a) calls the E_DMOUT module as a subroutine. Here, the call destination address, for example, "E_DMOUT", is placed so that it is included within 2000H to 20FFH.

図212(b)の1行目の指標「E_DMOUT:」は、当該E_DMOUTモジュールの先頭アドレスを示す。2行目のコマンド「LD HL,R_ERW_IOB」によって識別セグ出力要求バッファのアドレス「R_ERW_IOB」をHLレジスタに設定する。3行目のコマンド「LD A,(R_COM_CNT)」によって、「R_COM_CNT」で示されるアドレスに格納された1バイト値(コモンカウンタ)がAレジスタに読み出される。4行目のコマンド「LD A,(HL+A)」によって、HLレジスタで示されるアドレスにAレジスタの値を加算した(オフセットさせた)アドレスに格納された1バイト値(表示データ)がAレジスタに読み出される。5行目のコマンド「OUT (@OTC_PRT),A」によって、Uレジスタの値をアドレスの上位1バイトとし、出力ポート12(内部レジスタI/Oポート)のアドレスの下位1バイトを示す固定値「@OTC_PRT」を下位1バイトとし、そのアドレスに、Aレジスタの値を出力する。6行目のコマンド「RETEX」によって、1段上のルーチンに戻る。こうして、図211同様、別領域においてダイナミックポート出力処理を実行することができる。 The index "E_DMOUT:" on the first line of Figure 212 (b) indicates the starting address of the E_DMOUT module. The command "LD HL, R_ERW_IOB" on the second line sets the address of the identification segment output request buffer "R_ERW_IOB" in the HL register. The command "LD A, (R_COM_CNT)" on the third line reads a one-byte value (common counter) stored at the address indicated by "R_COM_CNT" into the A register. The command "LD A, (HL+A)" on the fourth line reads a one-byte value (display data) stored at the address indicated by the HL register plus (offset) the value of the A register. The command "OUT (@OTC_PRT), A" on line 5 sets the value of the U register to the upper byte of the address, and the fixed value "@OTC_PRT" indicating the lower byte of the address of the output port 12 (internal register I/O port) to the lower byte, and outputs the value of the A register to that address. The command "RETEX" on line 6 returns to the routine one level above. In this way, dynamic port output processing can be executed in a separate area, just like in Figure 211.

このように、図211(a)に示したDYM_OUTモジュールと図211(b)に示したE_DMOUTモジュールの総コマンドサイズは、図211(a)の1行目のコマンド「DI」1バイト+2行目のコマンド「CALL E_DMOUT」3バイト+図211(b)の2行目のコマンド「EX AF,AF’」1バイト+3行目のコマンド「EXX」1バイト+4行目のコマンド「LD HL,R_ERW_IOB」3バイト+5行目のコマンド「LD A,(R_COM_CNT)」3バイト+6行目のコマンド「LD A,(HL+A)」3バイト+7行目のコマンド「OUT (@OTC_PRT),A」2バイト+8行目のコマンド「EXX」1バイト+9行目のコマンド「EX AF,AF’」1バイト+10行目のコマンド「EI」1バイト+11行目のコマンド「RET」1バイト=21バイトであり、総実行サイクルは、図211(a)の1行目1サイクル+2行目5サイクル+図211(b)の2行目1サイクル+3行目1サイクル+4行目3サイクル+5行目4サイクル+6行目4サイクル+7行目3サイクル+8行目1サイクル+9行目1サイクル+10行目1サイクル+11行目3サイクル=28サイクルとなる。 In this way, the total command size of the DYM_OUT module shown in Figure 211(a) and the E_DMOUT module shown in Figure 211(b) is 1 byte of the command "DI" on the first line of Figure 211(a) + 3 bytes of the command "CALL E_DMOUT" on the second line + 1 byte of the command "EX AF, AF'" on the second line of Figure 211(b) + 1 byte of the command "EXX" on the third line + 3 bytes of the command "LD HL, R_ERW_IOB" on the fourth line + 3 bytes of the command "LD A, (R_COM_CNT)" on the fifth line + 3 bytes of the command "LD A, (HL+A)" on the sixth line + 2 bytes of the command "OUT (@OTC_PRT), A" on the seventh line + 1 byte of the command "EXX" on the eighth line + 1 byte of the command "EX 1 byte of "AF, AF'" + 1 byte of command "EI" on line 10 + 1 byte of command "RET" on line 11 = 21 bytes, and the total execution cycles are 1 cycle of line 1 in Fig. 211(a) + 5 cycles of line 2 + 1 cycle of line 2 in Fig. 211(b) + 1 cycle of line 3 + 3 cycles of line 4 + 4 cycles of line 5 + 4 cycles of line 6 + 3 cycles of line 7 + 1 cycle of line 8 + 1 cycle of line 9 + 1 cycle of line 10 + 3 cycles of line 11 = 28 cycles.

一方、図212(a)に示したDYM_OUTモジュールと図212(b)に示したE_DMOUTモジュールの総コマンドサイズは、図212(a)の1行目のコマンド「CALLEX E_DMOUT」2バイト+図212(b)の2行目のコマンド「LD HL,R_ERW_IOB」3バイト+3行目のコマンド「LD A,(R_COM_CNT)」3バイト+4行目のコマンド「LD A,(HL+A)」3バイト+5行目のコマンド「OUT (@OTC_PRT),A」2バイト+6行目のコマンド「RETEX」2バイト=15バイトであり、総実行サイクルは、図212(a)の1行目4サイクル+図212(b)の2行目3サイクル+3行目4サイクル+4行目4サイクル+5行目3サイクル+6行目5サイクル=23サイクルとなる。したがって、図211の場合と比べ、総コマンドサイズが6バイト削減され、総実行サイクルも5サイクル削減される。かかるE_DMOUTモジュールによって、コマンドの更なる短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 On the other hand, the total command size of the DYM_OUT module shown in FIG. 212(a) and the E_DMOUT module shown in FIG. 212(b) is 2 bytes of the command "CALLEX E_DMOUT" on the first line of FIG. 212(a) + 3 bytes of the command "LD HL, R_ERW_IOB" on the second line of FIG. 212(b) + 3 bytes of the command "LD A, (R_COM_CNT)" on the third line + 3 bytes of the command "LD A, (HL+A)" on the fourth line + 2 bytes of the command "OUT (@OTC_PRT), A" on the fifth line + 2 bytes of the command "RETEX" on the sixth line = 15 bytes, and the total execution cycles are 4 cycles on the first line of FIG. 212(a) + 3 cycles on the second line of FIG. 212(b) + 4 cycles on the third line + 4 cycles on the fourth line + 3 cycles on the fifth line + 5 cycles on the sixth line = 23 cycles. Therefore, compared to the case of FIG. 211, the total command size is reduced by 6 bytes, and the total execution cycle is also reduced by 5 cycles. This E_DMOUT module makes it possible to further shorten commands and reduce the processing load, and to ensure the capacity of the control area for performing game control processing.

ところで、図208~図210を用いて説明したように、コマンド「CALLEX mn」は、呼び出し先アドレスがアドレスマップ上の2000H~20FFHの範囲であれば、コマンドのコマンドサイズは「2」であり、実行サイクルは「4」であるが、それ以外の範囲では、コマンドのコマンドサイズは「4」であり、実行サイクルは「6」となる。したがって、呼び出し先アドレスは全て2000H~20FFHの範囲に配置するのが望ましい。しかし、2000H~20FFHでは、記述できるバイト数が256バイトしかないので、かかる範囲にサブルーチンをそのまま記述するとなると、サブルーチンの数が制限されてしまう。例えば、比較的コマンドサイズが小さいE_SETTMモジュールであっても、図210(b)の2行目のコマンド「LD A,@MDL_WAT_TMR」2バイト+3行目のコマンド「LD (_EX_SLTM),A」4バイト+4行目のコマンド「RETEX」2バイト=8バイトを占有するので、サブルーチンの数を多く配置することができなくなる。 As explained using Figures 208 to 210, the command "CALLEX mn" has a command size of "2" and an execution cycle of "4" if the callee address is in the range of 2000H to 20FFH on the address map, but in any other range, the command size is "4" and the execution cycle is "6". Therefore, it is desirable to place all callee addresses in the range of 2000H to 20FFH. However, since only 256 bytes can be written between 2000H and 20FFH, if subroutines are written directly in this range, the number of subroutines will be limited. For example, even with the E_SETTM module, which has a relatively small command size, the 2 bytes of the command "LD A, @MDL_WAT_TMR" on the second line in Figure 210(b) + the 4 bytes of the command "LD (_EX_SLTM), A" on the third line + the 2 bytes of the command "RETEX" on the fourth line occupy 8 bytes, making it impossible to place a large number of subroutines.

そこで、本実施形態では、アドレスマップ上の2000H~20FFHの範囲には、実質的に、移動に関するコマンド「JP mn」のみを配置し、サブルーチンの本体は移動先に配置する。かかるコマンド「JP mn」のコマンドサイズは「3」なので、アドレスマップ上の2000H~20FFHの範囲にコマンド「JP mn」を並置することで、256/3=86個のモジュールをサブルーチンとして呼び出すことが可能となる。 Therefore, in this embodiment, in the range of 2000H to 20FFH on the address map, essentially only the movement-related command "JP mn" is placed, and the main body of the subroutine is placed at the movement destination. Since the command size of such a "JP mn" command is "3", by arranging the "JP mn" command in the range of 2000H to 20FFH on the address map, it becomes possible to call 256/3 = 86 modules as subroutines.

なお、コマンド「JP mn」の代わりにコマンドサイズ「3」のコマンド「CALL mn」を用いることも可能であるが、その場合、コマンド「CALL mn」の後に、コマンドサイズ「2」のコマンド「RETEX」を配置する必要が生じるので、コマンド「JP mn」よりサブルーチンの数が制限されることとなる。したがって、コマンド「JP mn」を採用するのが望ましい。以下、かかる内容を反映したE_SETTMモジュールの具体的な処理を説明する。 It is also possible to use the command "CALL mn" with a command size of "3" instead of the command "JP mn", but in that case, it becomes necessary to place the command "RETEX" with a command size of "2" after the command "CALL mn", which limits the number of subroutines compared to the command "JP mn". Therefore, it is preferable to use the command "JP mn". Below, we will explain the specific processing of the E_SETTM module that reflects this content.

図213は、E_SETTMモジュールの具体的な処理を示したフローチャートである。ここでは、任意の処理として、図208同様、ブロッカー閉塞処理を実行するBLKSHUTモジュールの一部を挙げて説明する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。 Figure 213 is a flowchart showing the specific processing of the E_SETTM module. As an optional process, a part of the BLKSHUT module that executes blocker blocking processing, as in Figure 208, will be explained here. The numerical values of step S in this figure will be used only in the explanation of this figure.

メインCPU500aは、図213(a)のように、任意の処理を実行する。メインCPU500aは、別領域のサブルーチンとしてRRE01モジュールを呼び出す(S1)。 The main CPU 500a executes an arbitrary process as shown in FIG. 213(a). The main CPU 500a calls the RRE01 module as a subroutine in another area (S1).

続いて、メインCPU500aは、図213(b)のように、RRE01モジュールにおいて、有意な処理を行うことなく、E_SETTMモジュールに移動する(S2)。このように、RRE01モジュールは、E_SETTMモジュールに移動するためのモジュールであり、アドレスマップ上の2000H~20FFHの範囲に配置される。こうして、サブルーチンの数を多く配置することができる。 Then, the main CPU 500a moves to the E_SETTM module without performing any significant processing in the RRE01 module, as shown in FIG. 213(b) (S2). In this way, the RRE01 module is a module for moving to the E_SETTM module, and is placed in the range of 2000H to 20FFH on the address map. In this way, a large number of subroutines can be placed.

メインCPU500aは、図213(c)のように、E_SETTMモジュールにおいて、投入異常非監視タイマ値をAレジスタに設定し(S3)、そのAレジスタの値を所定のアドレス(投入異常非監視タイマ)が示す値に格納して、投入異常非監視タイマを設定する(S4)。かかる処理が完了すると、メインCPU500aは、当該E_SETTMモジュールを終了して1段上のルーチンに戻る(S5)。かかるE_SETTMモジュールは、RRE01モジュールの移動先なので、アドレスマップの制限を受けない。したがって、別領域のうちの2100H~3FBFHの範囲に任意に配置することができるので、総コマンドサイズがある程度大きくとも許容される。 As shown in FIG. 213(c), the main CPU 500a sets the value of the non-monitoring timer for the power-on abnormality in the A register in the E_SETTM module (S3), stores the value of the A register at a specified address (power-on abnormality non-monitoring timer), and sets the power-on abnormality non-monitoring timer (S4). When this process is completed, the main CPU 500a ends the E_SETTM module and returns to the routine one step above (S5). Since the E_SETTM module is the destination of the RRE01 module, it is not subject to the address map restrictions. Therefore, it can be placed anywhere in the range of 2100H to 3FBFH in a separate area, so a somewhat large total command size is acceptable.

図214は、E_SETTMモジュールを実現するためのコマンドのさらに他の例を説明するための説明図である。ここでは、図214(b)のように、新たに、E_SETTMモジュールに移動するためのRRE01モジュールを設けている。 Figure 214 is an explanatory diagram for explaining yet another example of a command for implementing the E_SETTM module. Here, as shown in Figure 214 (b), a new RRE01 module is provided for moving to the E_SETTM module.

図214(a)の1行目のコマンド「CALLEX PRE01」によって、サブルーチンとしてE_SETTMモジュールではなく、RRE01モジュールが呼び出される。かかる1行目のコマンドが、図213(a)のステップS1に対応する。なお、コマンド「CALLEX PRE01」によって、割込の禁止、および、汎用レジスタの退避も実行される。 The command "CALLEX PRE01" on the first line of Fig. 214(a) calls the RRE01 module as a subroutine instead of the E_SETTM module. This command on the first line corresponds to step S1 in Fig. 213(a). The command "CALLEX PRE01" also disables interrupts and saves the general-purpose registers.

図214(b)の1行目の指標「PRE01:」は、当該PRE01モジュールの先頭アドレスを示す。2行目のコマンド「JP E_SETTM」によって、E_SETTMモジュール本体へ移動する。かかるコマンドが、図213(b)のステップS2に対応する。 The index "PRE01:" on the first line of Figure 214(b) indicates the starting address of the PRE01 module. The command "JP E_SETTM" on the second line moves to the E_SETTM module body. This command corresponds to step S2 in Figure 213(b).

なお、コマンド「CALLEX mn」を通じて複数のサブルーチンを呼び出す場合、その複数のサブルーチンに関する呼び出しアドレスを示す指標(例えば、「PRE01:」と、コマンド「JP mn」とを、2000H~20FFHの範囲に連続して並置する。こうすることで、2000H~20FFHの範囲を有効利用し、サブルーチンの数を多く配置することができる。 When calling multiple subroutines using the command "CALLEX mn", the index showing the calling addresses for those multiple subroutines (for example, "PRE01:") and the command "JP mn" are placed consecutively in the range from 2000H to 20FFH. This makes effective use of the range from 2000H to 20FFH, allowing a large number of subroutines to be placed.

図214(c)の1行目の指標「E_SETTM:」は、当該E_SETTMモジュールの先頭アドレスを示す。2行目のコマンド「LD A,@MDL_WAT_TMR」によって、固定値「@MDL_WAT_TMR」、すなわち、投入異常非監視タイマ値(初期値)としての250.32msecに相当する(252/6+1)がAレジスタに読み出される。かかる2行目のコマンドが、図213(c)のステップS3に対応する。3行目のコマンド「LD (_EX_SLTM),A」によって、投入異常非監視タイマとしての変数「_EX_SLTM」にAレジスタの値を格納する。かかる3行目のコマンドが、図213(c)のステップS4に対応する。こうして、投入異常非監視タイマに投入異常非監視タイマ値を設定することが可能となる。 The index "E_SETTM:" on the first line of FIG. 214(c) indicates the starting address of the E_SETTM module. The command "LD A, @MDL_WAT_TMR" on the second line reads the fixed value "@MDL_WAT_TMR", i.e., (252/6+1) equivalent to 250.32 msec as the power-on abnormality non-monitoring timer value (initial value) into the A register. This command on the second line corresponds to step S3 in FIG. 213(c). The command "LD (_EX_SLTM), A" on the third line stores the value of the A register in the variable "_EX_SLTM" as the power-on abnormality non-monitoring timer. This command on the third line corresponds to step S4 in FIG. 213(c). In this way, it is possible to set the power-on abnormality non-monitoring timer value in the power-on abnormality non-monitoring timer.

図214(c)の4行目のコマンド「RETEX」によって、1段上のルーチンに戻る。かかる4行目のコマンドが、図213(c)のステップS5に対応する。こうして、別領域において投入異常非監視タイマを設定することが可能となる。なお、コマンド「RETEX」によって、汎用レジスタの復帰、および、割込の許可も実行される。 The command "RETEX" on the fourth line of Fig. 214(c) returns to the routine one level above. This command on the fourth line corresponds to step S5 of Fig. 213(c). In this way, it becomes possible to set a timer for non-monitoring of abnormal input in a separate area. The command "RETEX" also restores the general-purpose registers and allows interrupts.

かかる図214の例では、図210の場合と比べ、コマンド「JP E_SETTM」の分だけ、総コマンドサイズおよび総実行サイクルが大きくなる。しかし、コマンド「JP E_SETTM」を経由してサブルーチンに移動させる構成とすることで、2000H~20FFHの範囲にサブルーチンを多く配することができ、サブルーチン数の制限を広げ、さらに、サブルーチン自体のコマンドサイズの制限が緩和されるので、結果、コマンドの更なる短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 In the example of FIG. 214, the total command size and total execution cycles are larger than in FIG. 210 by the amount of the command "JP E_SETTM". However, by configuring the command "JP E_SETTM" to move to a subroutine, it is possible to allocate many subroutines in the range from 2000H to 20FFH, widening the limit on the number of subroutines and relaxing the limit on the command size of the subroutines themselves. As a result, it is possible to further shorten commands and reduce the processing load, and to ensure the capacity of the control area for performing game control processing.

なお、このように、2000H~20FFHの範囲にコマンド「JP mn」のみを配置しても、配置できるサブルーチンの数が足りない場合、すなわち、サブルーチンが86個以上ある場合、総コマンドサイズが小さいモジュールを2100H~217FHの範囲(128バイトの範囲)に配置し、コマンドサイズ「3」のコマンド「JP mn」ではなく、近距離の移動に適しているコマンドサイズ「2」のコマンド「JR mn」を用いるとしてもよい。こうすることで、2000H~20FFHの範囲に、さらに多くのコマンド「JR mn」を配置することが可能となる。 Note that if there are not enough subroutines to place even if only the "JP mn" command is placed in the range from 2000H to 20FFH, i.e. if there are 86 or more subroutines, it is possible to place modules with a small total command size in the range from 2100H to 217FH (a range of 128 bytes) and use the "JR mn" command with a command size of "2", which is suitable for short distance movement, instead of the "JP mn" command with a command size of "3". This makes it possible to place even more "JR mn" commands in the range from 2000H to 20FFH.

<コマンド「ICPLMQA」、「ICPLMQ」>
RAM_INCモジュールは、RAM加算処理、すなわち、メインRAM500cの1バイト変数を、所定数を上限に、1だけインクリメントするためのモジュールである。なお、RAM_INCモジュールは、インクリメントのみならず、インクリメントした結果、キャリーフラグを設定している。また、RAM_INCモジュールは、汎用モジュールとして利用することもできる。
<Command "ICPLMQA", "ICPLMQ">
The RAM_INC module is a module for performing RAM addition processing, that is, incrementing a 1-byte variable in the main RAM 500c by 1 up to a predetermined number. The RAM_INC module not only increments, but also sets a carry flag as a result of the increment. The RAM_INC module can also be used as a general-purpose module.

かかるRAM_INCモジュールは、複数のモジュールからサブルーチンとして呼び出される。例えば、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、本前兆中処理(AT状態=「3」)を実行するHID_LOTモジュール、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、終了画面中処理(AT状態=「4」)を実行するFIN_LOTモジュール、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、REG中処理(AT状態=「6」)を実行するREG_LOTモジュール、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、BIG中処理(AT状態=「7」)を実行するBIT_LOTモジュール等から呼び出される。 Such a RAM_INC module is called as a subroutine from a number of modules. For example, the HID_LOT module selectively transitions depending on the game state and presentation state in the EXE_SET module which executes the execution flag setting process shown in step S2400-11 in FIG. 91, and executes this premonition process (AT state = "3"); the FIN_LOT module selectively transitions depending on the game state and presentation state in the EXE_SET module which executes the execution flag setting process shown in step S2400-11 in FIG. 91, and executes the end screen process (AT state = "4"); In the EXE_SET module which executes the execution flag setting process shown in step S2400-11 in FIG. 91, the EXE_SET module selectively transitions depending on the game state and presentation state, and is called from the REG_LOT module which executes the REG processing (AT state = "6"), and in the EXE_SET module which executes the execution flag setting process shown in step S2400-11 in FIG. 91, the EXE_SET module selectively transitions depending on the game state and presentation state, and is called from the BIT_LOT module which executes the BIG processing (AT state = "7"), etc.

メインCPU500aは、メインROM500bからプログラムを読み出し、読み出したプログラムを遂行し、任意の処理において、メインRAM500cに保持された1バイト値をインクリメントする。 The main CPU 500a reads a program from the main ROM 500b, executes the read program, and increments a one-byte value stored in the main RAM 500c during any processing.

図215は、RAM_INCモジュールの具体的な処理を示したフローチャートである。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。また、当該RAM_INCモジュールの説明中、所定レジスタはAレジスタであり、所定数は上限値であり、特定アドレスはインクリメントの対象となるアドレスである。 Figure 215 is a flow chart showing the specific processing of the RAM_INC module. The numerical values of step S in this figure are used only in the explanation of this figure. In addition, in the explanation of this RAM_INC module, the specified register is the A register, the specified number is the upper limit value, and the specific address is the address to be incremented.

メインCPU500aは、図215(a)のように、任意の処理において、インクリメント対象となるアドレスをHLレジスタに設定する(S1)。そして、メインCPU500aは、HLレジスタで示されるアドレスに格納された1バイト値をインクリメントし(S2)、インクリメントした値をHLアドレスで示されるアドレスに格納して、値を更新する(S3)。ただし、ここでは、上限値(所定数)が設定され、インクリメントした結果が、その上限値を超えないようになっている。 As shown in FIG. 215(a), in any process, the main CPU 500a sets the address to be incremented in the HL register (S1). The main CPU 500a then increments the 1-byte value stored in the address indicated by the HL register (S2), and stores the incremented value in the address indicated by the HL address, updating the value (S3). However, here, an upper limit (a predetermined number) is set so that the incremented result does not exceed this upper limit.

図216、図217は、RAM_INCモジュールを実現するためのコマンドの一例を説明するための説明図である。図215で示したフローチャートは、例えば、図216に示したプログラムによって実現される。 Figures 216 and 217 are explanatory diagrams for explaining an example of a command for implementing the RAM_INC module. The flowchart shown in Figure 215 is implemented, for example, by the program shown in Figure 216.

図216の1行目の指標「RAM_INC:」は、当該RAM_INCモジュールの先頭アドレスを示す。2行目のコマンド「LDQ HL,LOW _AT_SET」によって、Qレジスタの値をHレジスタに読み出し、アドレス「_AT_SET」の下位1バイトの値をLレジスタに読み出す。かかる2行目のコマンドが、図215のステップS1に対応する。3行目のコマンド「LD A,(HL)」によって、図217に示すように、HLレジスタで示されるアドレスに格納された1バイト値(例えば、02H)がAレジスタに読み出される。図216の4行目のコマンド「INC A」によって、図217に示すようにAレジスタの値が、例えば、02Hから03Hに1だけインクリメントされる。なお、汎用性を持たせるため、3行目のコマンド「LD A,(HL)」および4行目のコマンド「INC A」の代わりに、コマンド「LD A,1」およびコマンド「ADD A,(HL)」を用いることもできる。この場合、Aレジスタに格納する「1」の値を変えることで、インクリメントする値を1以外に変更することができる。 The index "RAM_INC:" on the first line of FIG. 216 indicates the starting address of the RAM_INC module. The command "LDQ HL,LOW _AT_SET" on the second line reads the value of the Q register into the H register, and the value of the lowest byte of the address "_AT_SET" into the L register. This command on the second line corresponds to step S1 in FIG. 215. The command "LD A, (HL)" on the third line reads a byte value (e.g., 02H) stored at the address indicated by the HL register into the A register, as shown in FIG. 217. The command "INC A" on the fourth line of FIG. 216 increments the value of the A register by 1, for example, from 02H to 03H, as shown in FIG. 217. For versatility, the commands "LD A, 1" and "ADD A, (HL)" can be used instead of the command "LD A, (HL)" on the third line and the command "INC A" on the fourth line. In this case, the increment value can be changed to a value other than 1 by changing the value of "1" stored in the A register.

図216の5行目のコマンド「JCP C,A,5,RAM_INC01」によって、Aレジスタの値と、上限値「5」とを比較し、その結果、5未満であれば(キャリーフラグが立てば)、アドレス「RAM_INC01」に移動する。こうして、Aレジスタの値が上限値の5未満であれば、次の処理を省略して7行目の指標「RAM_INC01」に移動することができる。6行目のコマンド「LD A,5」によって、Aレジスタに上限値「5」を格納する。これは、4行目のコマンド「INC A」によって、Aレジスタの値が5を超えた場合、強制的にAレジスタの値を5に上書きすることで、インクリメントした結果を5以下とするためのである。なお、ここでは、インクリメント前のAレジスタの値が4の場合、すなわち、Aレジスタの値が4から5にインクリメントされた場合、既にAレジスタの値は5となっているので5に更新する必要はないが、そのことを判定する処理を追加すると処理負荷が高まるので、汎用性を優先し、5を超えた場合同様、強制的にAレジスタの値を5に更新することとしている。かかる3~6行目のコマンドが、図215のステップS2に対応する。 The command "JCP C, A, 5, RAM_INC01" on line 5 of Figure 216 compares the value of the A register with the upper limit value "5", and if it is less than 5 (if the carry flag is set), it moves to the address "RAM_INC01". In this way, if the value of the A register is less than the upper limit value of 5, the next process can be omitted and it can be moved to the index "RAM_INC01" on line 7. The command "LD A, 5" on line 6 stores the upper limit value "5" in the A register. This is to forcibly overwrite the value of the A register with 5 when the command "INC A" on line 4 causes the value of the A register to exceed 5, so that the increment result is 5 or less. Note that here, if the value of the A register before the increment is 4, that is, when the value of the A register is incremented from 4 to 5, the value of the A register is already 5, so there is no need to update it to 5, but adding a process to determine this would increase the processing load, so versatility is prioritized and the value of the A register is forcibly updated to 5, just as when it exceeds 5. The commands on lines 3 to 6 correspond to step S2 in Figure 215.

図216の7行目の指標「RAM_INC01」は、5行目のコマンド「JCP C,A,5,RAM_INC01」の移動先アドレスを示す。8行目のコマンド「LD (HL),A」によって、図217に示すように、Aレジスタの値(例えば、03H)がHLレジスタで示されるアドレスに格納される。かかる8行目のコマンドが、図215のステップS3に対応する。こうして、メインRAM500cの1バイト変数を、所定数を上限に、1だけインクリメントしつつ、Aレジスタにインクリメント後の値を保持すること(Aレジスタの値をその後の処理で利用すること)が可能となる。 The index "RAM_INC01" on line 7 of Figure 216 indicates the destination address of the command "JCP C, A, 5, RAM_INC01" on line 5. The command "LD (HL), A" on line 8 stores the value of the A register (for example, 03H) at the address indicated by the HL register, as shown in Figure 217. This command on line 8 corresponds to step S3 in Figure 215. In this way, it becomes possible to increment a 1-byte variable in main RAM 500c by 1 up to a specified number, while retaining the incremented value in the A register (the value in the A register can be used in subsequent processing).

このように、図216に示したRAM_INCモジュールのコマンドの総コマンドサイズは、2行目のコマンド「LDQ HL,LOW _AT_SET」2バイト+3行目のコマンド「LD A,(HL)」1バイト+4行目のコマンド「INC A」1バイト+5行目のコマンド「JCP C,A,5,RAM_INC01」3バイト+6行目のコマンド「LD A,5」2バイト+8行目のコマンド「LD (HL),A」1バイト=10バイトとなり、総実行サイクルは、2行目2サイクル+3行目2サイクル+4行目1サイクル+5行目4サイクル+6行目2サイクル+8行目2サイクル=13サイクルとなる。かかるRAM_INCモジュールを設けることによって、1バイト変数を、画一的かつ容易にインクリメントできるので、コマンドの短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 In this way, the total command size of the commands of the RAM_INC module shown in FIG. 216 is 2 bytes of the command "LDQ HL,LOW _AT_SET" on the second line + 1 byte of the command "LD A, (HL)" on the third line + 1 byte of the command "INC A" on the fourth line + 3 bytes of the command "JCP C,A,5,RAM_INC01" on the fifth line + 2 bytes of the command "LD A,5" on the sixth line + 1 byte of the command "LD (HL), A" on the eighth line = 10 bytes, and the total execution cycle is 2 cycles on the second line + 2 cycles on the third line + 1 cycle on the fourth line + 4 cycles on the fifth line + 2 cycles on the sixth line + 2 cycles on the eighth line = 13 cycles. By providing such a RAM_INC module, 1-byte variables can be incremented uniformly and easily, so it is possible to shorten the commands and ensure the capacity of the control area for performing game control processing.

図218は、RAM_INCモジュールを実現するためのコマンドの他の例を説明するための説明図である。ここでは、図216のRAM_INCモジュールのコマンド群を、図218のRAM_INCモジュールのコマンド群に置き換えている。 Figure 218 is an explanatory diagram for explaining another example of commands for implementing the RAM_INC module. Here, the command group of the RAM_INC module in Figure 216 is replaced with the command group of the RAM_INC module in Figure 218.

図218の1行目の指標「RAM_INC:」は、当該RAM_INCモジュールの先頭アドレスを示す。2行目のコマンド「ICPLMQA (LOW _AT_SET)、5」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_AT_SET」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレス(インクリメント対象となるアドレス)に格納された1バイト値と、上限値「5」とを比較し、その結果、5未満であれば(キャリーフラグが立てば)、インクリメント対象となるアドレスに格納された1バイト値を1だけインクリメントして、Aレジスタに格納するとともに、インクリメント対象となるアドレスに格納された1バイト値を更新する。また、インクリメント後の値が5以上であれば(キャリーフラグが立っていなければ)、Aレジスタに上限値「5」を格納するとともに、インクリメント対象となるアドレスに格納された1バイト値を上限値「5」に更新する。かかる2行目のコマンドが、図215のステップS1~S3に対応する。こうして、メインRAM500cの1バイト変数を、所定数を上限に、1だけインクリメントしつつ、Aレジスタにインクリメント後の値を保持すること(Aレジスタの値をその後の処理で利用すること)が可能となる。 The index "RAM_INC:" on the first line of FIG. 218 indicates the start address of the RAM_INC module. The command "ICPLMQA (LOW _AT_SET), 5" on the second line sets the value of the Q register as the upper byte of the address, sets the value of the lower byte of the address "_AT_SET" as the lower byte of the address, and compares the byte value stored in that address (the address to be incremented) with the upper limit value "5". If the result is less than 5 (if the carry flag is set), the byte value stored in the address to be incremented is incremented by 1 and stored in the A register, and the byte value stored in the address to be incremented is updated. If the incremented value is 5 or more (if the carry flag is not set), the upper limit value "5" is stored in the A register, and the byte value stored in the address to be incremented is updated to the upper limit value "5". Such commands on the second line correspond to steps S1 to S3 in FIG. 215. In this way, it is possible to increment a 1-byte variable in main RAM 500c by 1 up to a specified number, while retaining the incremented value in the A register (the value in the A register can be used in subsequent processing).

ここで、コマンド「ICPLMQA (k)、n」は、Qレジスタの値をアドレスの上位1バイトとし、値kをアドレスの下位1バイトとし、その対象アドレスに格納された1バイト値と、上限値nとを比較し、その結果、n未満であれば、対象アドレスに格納された1バイト値を1だけインクリメントして、Aレジスタに格納するとともに、対象アドレスに格納された1バイト値を更新し、n以上であれば、Aレジスタに上限値nを格納するとともに、対象アドレスに格納された1バイト値を上限値nに更新するコマンドである。かかるコマンドサイズは「4」であり、実行サイクルは「7」である。 Here, the command "ICPLMQA (k), n" sets the value of the Q register as the upper byte of the address, sets the value k as the lower byte of the address, and compares the byte value stored in the target address with the upper limit value n. If the result is less than n, the byte value stored in the target address is incremented by 1 and stored in the A register, and the byte value stored in the target address is updated; if the result is n or greater, the upper limit value n is stored in the A register, and the byte value stored in the target address is updated to the upper limit value n. The command size is "4" and the execution cycle is "7".

図218のRAM_INCモジュールのコマンドの総コマンドサイズは、2行目のコマンド「ICPLMQA (LOW _AT_SET)、5」4バイト=4バイトとなり、総実行サイクルは、2行目7サイクル=7サイクルとなる。したがって、図216の場合と比べ、総コマンドサイズが6バイト削減され、総実行サイクルが6サイクル削減されている。かかるRAM_INCモジュールによって、コマンドの更なる短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 The total command size of the command of the RAM_INC module in Figure 218 is the command on the second line "ICPLMQA (LOW_AT_SET), 5" 4 bytes = 4 bytes, and the total execution cycle is the command on the second line 7 cycles = 7 cycles. Therefore, compared to the case of Figure 216, the total command size is reduced by 6 bytes and the total execution cycle is reduced by 6 cycles. This RAM_INC module makes it possible to further shorten commands and reduce the processing load, and ensure the capacity of the control area for performing game control processing.

また、図216と図218とを比較して理解できるように、図216において7行(2~8行目)を占有していたコマンド群を、図218においては1行(2行目)で表すことができ、コマンド数自体の削減、および、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 216 and 218, the command group that occupies seven lines (lines 2 to 8) in Figure 216 can be represented in one line (line 2) in Figure 218, making it possible to reduce the number of commands and lighten the design load.

図219は、RAM_INCモジュールを実現するためのコマンドのさらに他の例を説明するための説明図である。図218を用いて説明したRAM_INCモジュールでは、メインRAM500cの1バイト変数を、所定数を上限に、1だけインクリメントしつつ、Aレジスタにインクリメント後の値を保持する例を挙げた。しかし、処理によっては、Aレジスタにその結果を残すことなく、メインRAM500cの1バイト変数を、所定数を上限に1だけインクリメントしさえすればよい場合もある。ここでは、Aレジスタを更新することなく、1バイト変数を1だけインクリメントする例を挙げる。 Figure 219 is an explanatory diagram for explaining yet another example of a command for implementing the RAM_INC module. In the RAM_INC module explained using Figure 218, an example was given in which a 1-byte variable in main RAM 500c is incremented by 1 up to a predetermined number, while the incremented value is stored in the A register. However, depending on the process, there are cases in which it is sufficient to simply increment a 1-byte variable in main RAM 500c by 1 up to a predetermined number, without leaving the result in the A register. Here, an example is given in which a 1-byte variable is incremented by 1 without updating the A register.

図219の1行目の指標「RAM_INC:」は、当該RAM_INCモジュールの先頭アドレスを示す。2行目のコマンド「ICPLMQ (LOW _AT_SET)、5」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_AT_SET」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレス(インクリメント対象となるアドレス)に格納された1バイト値と、上限値「5」とを比較し、その結果、5未満であれば(キャリーフラグが立てば)、インクリメント対象となるアドレスに格納された1バイト値を1だけインクリメントして更新する。また、インクリメントされた値が5以上であれば(キャリーフラグが立っていなければ)、インクリメント対象となるアドレスに格納された1バイト値を上限値「5」に更新する。かかる2行目のコマンドが、図215のステップS1~S3に対応する。こうして、メインRAM500cの1バイト変数を、所定数を上限に、1だけインクリメントすることが可能となる。 The index "RAM_INC:" on the first line of FIG. 219 indicates the starting address of the RAM_INC module. The command "ICPLMQ (LOW _AT_SET), 5" on the second line sets the value of the Q register as the upper byte of the address, sets the value of the lower byte of the address "_AT_SET" as the lower byte of the address, and compares the byte value stored in that address (the address to be incremented) with the upper limit value "5". If the result is less than 5 (if the carry flag is set), the byte value stored in the address to be incremented is incremented by 1 and updated. If the incremented value is 5 or more (if the carry flag is not set), the byte value stored in the address to be incremented is updated to the upper limit value "5". The command on the second line corresponds to steps S1 to S3 in FIG. 215. In this way, it becomes possible to increment a 1-byte variable in the main RAM 500c by 1, with a predetermined number as the upper limit.

ここで、コマンド「ICPLMQ (k)、n」は、Qレジスタの値をアドレスの上位1バイトとし、値kをアドレスの下位1バイトとし、その対象アドレスに格納された1バイト値と、上限値nとを比較し、その結果、n未満であれば、対象アドレスに格納された1バイト値を1だけインクリメントして更新し、n以上であれば、対象アドレスに格納された1バイト値を上限値nに更新するコマンドである。かかるコマンドサイズは「4」であり、実行サイクルは「7」である。 Here, the command "ICPLMQ (k), n" sets the value of the Q register as the upper byte of the address, sets the value k as the lower byte of the address, compares the byte value stored at the target address with the upper limit value n, and if the result is less than n, increments the byte value stored at the target address by 1 and updates it, and if it is equal to or greater than n, updates the byte value stored at the target address to the upper limit value n. The command size is "4" and the execution cycle is "7".

図219のRAM_INCモジュールのコマンドの総コマンドサイズは、2行目のコマンド「ICPLMQ (LOW _AT_SET)、5」4バイト=4バイトとなり、総実行サイクルは、2行目7サイクル=7サイクルとなる。したがって、図216の場合と比べ、総コマンドサイズが6バイト削減され、総実行サイクルが6サイクル削減されている。かかるRAM_INCモジュールによって、コマンドの更なる短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 The total command size of the command of the RAM_INC module in Figure 219 is the command on the second line "ICPLMQ (LOW_AT_SET), 5" 4 bytes = 4 bytes, and the total execution cycle is the command on the second line 7 cycles = 7 cycles. Therefore, compared to the case of Figure 216, the total command size is reduced by 6 bytes, and the total execution cycle is reduced by 6 cycles. This RAM_INC module makes it possible to further shorten commands and reduce the processing load, and to ensure the capacity of the control area for performing game control processing.

また、ここでは、図216の例と比較して、Aレジスタを利用していない。したがって、Aレジスタの値を意図せず更新してしまうことはない。また、図216の例では、Aレジスタが既に利用されている場合、スタックしてAレジスタの値を退避する必要があったが、ここでは、Aレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 In addition, unlike the example in FIG. 216, the A register is not used here. Therefore, the value of the A register will not be updated unintentionally. Also, in the example in FIG. 216, if the A register was already in use, it was necessary to save the value of the A register by stacking, but here, since the A register is not used, stack processing is not required. In this way, resources can be used efficiently.

また、図216と図219とを比較して理解できるように、図216において7行(2~8行目)を占有していたコマンド群を、図219においては1行(2行目)で表すことができ、コマンド数自体の削減、および、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 216 and 219, the command group that occupies seven lines (lines 2 to 8) in Figure 216 can be represented in one line (line 2) in Figure 219, making it possible to reduce the number of commands and lighten the design load.

<コマンド「LDINTQR」>
TABLSETモジュールは、テーブルセット処理、すなわち、メインRAM500cの変数に所定の値(初期値)を設定するための汎用モジュールである。ここでは、TABLSETモジュールをメモリマップ上の0030Hに配置する例を挙げて説明する。
<Command "LDINTQR">
The TABLESET module is a general-purpose module for table set processing, i.e., for setting predetermined values (initial values) to variables in the main RAM 500c. Here, an example will be described in which the TABLESET module is allocated at 0030H on the memory map.

メインCPU500aは、メインROM500bからプログラムを読み出し、読み出したプログラムを遂行し、任意の処理において、サブルーチンとしてTABLSETモジュールを呼び出し、TABLSETモジュールを遂行する。TABLSETモジュールでは、メインROM500bのプログラムデータに記述された複数の1バイト値を、メインRAM500cのワークエリアにおいて変数として扱われる複数のデータを保持する領域に転送する。こうして、複数の変数の値が設定される。ここで、転送するデータの数を単にデータ数と言う。 The main CPU 500a reads a program from the main ROM 500b, executes the read program, and in any process, calls the TABLESET module as a subroutine and executes the TABLESET module. The TABLESET module transfers multiple 1-byte values written in the program data in the main ROM 500b to an area in the work area of the main RAM 500c that holds multiple pieces of data treated as variables. In this way, the values of multiple variables are set. Here, the number of pieces of data to be transferred is simply called the number of pieces of data.

図220は、TABLSETモジュールの具体的な処理を示したフローチャートである。ここでは、任意の処理として、図89のステップS2200-11や図95のステップS2800-39で示したエラーウェイト処理、すなわち、エラー表示、警告音要求およびエラー復帰待ちを実行するERRWAITモジュールの一部を挙げて説明する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。また、当該TABLSETモジュールの説明中、第1レジスタはBレジスタであり、第2レジスタはHLレジスタであり、第1レジスタおよび第2レジスタと異なるレジスタはAレジスタであり、所定値は「1」である。なお、所定値を任意に設定できるのは言うまでもない。 Figure 220 is a flow chart showing the specific processing of the TABLESET module. Here, as an optional process, the error wait processing shown in step S2200-11 of Figure 89 and step S2800-39 of Figure 95, that is, a part of the ERRWAIT module that executes error display, warning sound request, and error recovery wait, is explained. The numerical values of step S in this figure are used only in the explanation of this figure. Also, in the explanation of this TABLESET module, the first register is the B register, the second register is the HL register, the register different from the first and second registers is the A register, and the predetermined value is "1". It goes without saying that the predetermined value can be set arbitrarily.

メインCPU500aは、図220(a)のように、任意の処理において、転送元となる1バイトデータ群の先頭アドレスをHLレジスタに設定する(S1)。そして、サブルーチンとしてTABLSETモジュールを呼び出す(S2)。 As shown in FIG. 220(a), in any process, the main CPU 500a sets the first address of a 1-byte data group that is to be transferred in the HL register (S1). Then, it calls the TABLESET module as a subroutine (S2).

メインCPU500aは、図220(b)のように、TABLSETモジュールにおいて、BCレジスタを退避し(S3)、割込を禁止する(S4)。そして、メインCPU500aは、HLレジスタで示されるアドレスに格納された1バイト値をBレジスタに読み出す(S5)。かかる1バイト値はデータ数を示す。続いて、メインCPU500aは、HLレジスタに「1」を加えた値で示されるアドレスに格納された値で特定されるアドレスに、HLレジスタに「2」を加えた値で示されるアドレスに格納された値を転送し、HLレジスタの値に「2」を加えて次に転送するアドレスを設定する(S6)。続いて、メインCPU500aは、Bレジスタの値をデクリメント(「1」減算)し、デクリメントした結果が0であるか否か判定する(S7)。ここで、デクリメントした結果が0でなければ(S7におけるNO)、ステップS6からの処理を繰り返し、デクリメントした結果が0であれば(S7におけるYES)、割込を許可し(S8)、BCレジスタを復帰させて(S9)、当該TABLSETモジュールを終了して1段上のルーチンに戻る(S10)。 As shown in FIG. 220(b), the main CPU 500a saves the BC register in the TABLESET module (S3) and inhibits interrupts (S4). Then, the main CPU 500a reads the 1-byte value stored in the address indicated by the HL register into the B register (S5). This 1-byte value indicates the number of data. Next, the main CPU 500a transfers the value stored in the address indicated by the value added to the HL register by "2" to the address specified by the value stored in the address indicated by the value added to the HL register by "1", and adds "2" to the value of the HL register to set the address to be transferred next (S6). Next, the main CPU 500a decrements the value of the B register (subtracts "1") and determines whether the result of the decrement is 0 or not (S7). If the result of the decrement is not 0 (NO in S7), the process repeats from step S6. If the result of the decrement is 0 (YES in S7), an interrupt is permitted (S8), the BC register is restored (S9), the TABLESET module is terminated, and the process returns to the routine one level above (S10).

図221、図222は、TABLSETモジュールを実現するためのコマンドの一例を説明するための説明図である。このうち、図221(a)は、TABLSETモジュールを呼び出す任意の処理のコマンド群を示し、図221(b)は、TABLSETモジュールのコマンド群を示し、図221(c)は、メインROM500bのプログラムデータにおける1バイトデータ群の配置を示し、図221(d)は、メインRAM500cのワークエリアにおける1バイトデータ群の配置を示す。図220で示したフローチャートは、例えば、図221に示したプログラムによって実現される。 Figures 221 and 222 are explanatory diagrams for explaining an example of commands for implementing the TABLESET module. Of these, Figure 221(a) shows a command group for an arbitrary process that calls the TABLESET module, Figure 221(b) shows a command group for the TABLESET module, Figure 221(c) shows the arrangement of a 1-byte data group in the program data of main ROM 500b, and Figure 221(d) shows the arrangement of a 1-byte data group in the work area of main RAM 500c. The flowchart shown in Figure 220 is implemented, for example, by the program shown in Figure 221.

図221(a)の1行目のコマンド「LD HL,T_ERR_RCV」によって、転送元となる1バイトデータ群の先頭アドレス「T_ERR_RCV」をHLレジスタに設定する。かかる1行目のコマンドが、図220(a)のステップS1に対応する。そして、2行目のコマンド「RST TABLSET」によって、サブルーチンとしてTABLSETモジュールが呼び出される。かかる2行目のコマンドが、図220(a)のステップS2に対応する。 The command "LD HL, T_ERR_RCV" on the first line of Fig. 221(a) sets the starting address "T_ERR_RCV" of the 1-byte data group that is the transfer source in the HL register. This command on the first line corresponds to step S1 in Fig. 220(a). Then, the command "RST TABLESET" on the second line calls the TABLESET module as a subroutine. This command on the second line corresponds to step S2 in Fig. 220(a).

図221(b)の1行目の指標「TABLSET:」は、当該TABLSETモジュールの先頭アドレスを示す。2行目のコマンド「PUSH BC」によって、BCレジスタの値がスタック領域に退避される。かかる2行目のコマンドが、図220(b)のステップS3に対応する。3行目のコマンド「DI」によって割込が禁止される。かかる3行目のコマンドが、図220(b)のステップS4に対応する。 The index "TABLESET:" on the first line of FIG. 221(b) indicates the top address of the TABLESET module. The command "PUSH BC" on the second line saves the value of the BC register to the stack area. This command on the second line corresponds to step S3 in FIG. 220(b). The command "DI" on the third line disables interrupts. This command on the third line corresponds to step S4 in FIG. 220(b).

図221(b)の4行目のコマンド「LD B,(HL)」によって、HLレジスタで示されるアドレスに格納された1バイト値がBレジスタに読み出される。このとき、HLレジスタには、図221(a)で示したように、アドレス「T_ERR_RCV」が設定されている。したがって、図221(c)の2行目の1バイト値「(T_ERR_RCV_-T_ERR_RCV)/2」がデータ数(転送の繰り返し数)としてBレジスタに読み出されることとなる。なお、「T_ERR_RCV_」は、転送元となる1バイトデータ群の最終アドレスの次のアドレスであり、T_ERR_RCVは転送元となる1バイトデータ群の先頭アドレスなので、T_ERR_RCV_-T_ERR_RCVの値(データ数を示す1バイト値)の値が、1バイト値の総バイト数となり、その値を、アドレスと値との組み合わせ数である2で除算すると、データ数が導出される。図221(c)の例では、データ数は、9/2=4となる。かかる図221(b)の4行目のコマンドが、図220(b)のステップS5に対応する。 The command "LD B, (HL)" on the fourth line of Fig. 221(b) reads the one-byte value stored in the address indicated by the HL register into the B register. At this time, the address "T_ERR_RCV" is set in the HL register as shown in Fig. 221(a). Therefore, the one-byte value "(T_ERR_RCV_-T_ERR_RCV)/2" on the second line of Fig. 221(c) is read into the B register as the number of data (number of transfer repetitions). Note that "T_ERR_RCV_" is the address next to the last address of the one-byte data group that is the transfer source, and T_ERR_RCV is the first address of the one-byte data group that is the transfer source, so the value of T_ERR_RCV_-T_ERR_RCV (the one-byte value indicating the number of data) is the total number of bytes of the one-byte value, and the number of data is derived by dividing this value by 2, which is the number of combinations of addresses and values. In the example of Figure 221(c), the number of data items is 9/2 = 4. The command on the fourth line of Figure 221(b) corresponds to step S5 in Figure 220(b).

図221(b)の5行目の指標「TABLSET10:」は繰り返し処理の先頭アドレスを示す。6行目のコマンド「INLD AC,(HL)」および7行目のコマンド「LDQ (C),A」によって、HLレジスタに「1」を加えた値で示されるアドレスに格納された値で特定されるアドレスに、HLレジスタに「2」を加えた値で示されるアドレスに格納された値が格納され、HLレジスタの値に「2」が加えられて次に転送するアドレスが設定される。かかる6,7行目のコマンドが、図220(b)のステップS6に対応する。 The index "TABLESET10:" on line 5 of Figure 221(b) indicates the start address of the repeat process. The command "INLD AC, (HL)" on line 6 and the command "LDQ (C), A" on line 7 store the value stored in the address indicated by the value stored in the address indicated by the value stored in the HL register plus "1", and "2" is added to the value of the HL register to set the address to be transferred next. These commands on lines 6 and 7 correspond to step S6 in Figure 220(b).

例えば、HLレジスタがアドレス「T_ERR_RCV」の値であった場合、図221(c)の3行目における2バイト変数「_ERR_NUM」の下位1バイト値がCレジスタに格納され、図221(c)の3行目における「0」の値がAレジスタに格納される。 For example, if the HL register contains the value of address "T_ERR_RCV", the value of the lowest byte of the 2-byte variable "_ERR_NUM" on the third line of Figure 221(c) is stored in the C register, and the value "0" on the third line of Figure 221(c) is stored in the A register.

また、図221(b)の7行目のコマンド「LDQ (C),A」は、Qレジスタの値をアドレスの上位1バイトとし、Cレジスタの値をアドレスの下位1バイトとし、そのアドレスに、Aレジスタの値を格納するコマンドである。 The command "LDQ (C), A" on line 7 of Figure 221(b) is a command that stores the value of the A register at the address with the value of the Q register as the most significant byte of the address and the value of the C register as the least significant byte of the address.

例えば、Cレジスタの値、すなわち「_ERR_NUM」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに、Aレジスタの値、すなわち、「0」の値を格納する。 For example, the value of the C register, i.e., the value of the lowest byte of "_ERR_NUM", is set as the lowest byte of the address, and the value of the A register, i.e., the value "0", is stored at that address.

ここで、図221(c)、図221(d)において、変数「_ERR_NUM」は、エラー番号を示し、変数「_CRE_TMR」は、クレジットボタン検出タイマを示し、変数「_CRE_FLG」は、クレジットボタン検出フラグを示し、変数「_SNS_OLD」はメダル通過センサービット前回状態を示す。なお、図221(d)に示す変数の配置は図のように連続している必要はなく、離隔していてもよい。 Here, in Figures 221(c) and 221(d), the variable "_ERR_NUM" indicates the error number, the variable "_CRE_TMR" indicates the credit button detection timer, the variable "_CRE_FLG" indicates the credit button detection flag, and the variable "_SNS_OLD" indicates the previous state of the medal passage sensor bit. Note that the arrangement of the variables shown in Figure 221(d) does not need to be contiguous as shown in the figure, and they may be spaced apart.

続いて、図221(b)の8行目のコマンド「DJNZ TABLSET10」によって、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0でなければ、アドレス「TABLSET10」に移動し、デクリメントした結果が0であれば、当該コマンドの次のコマンドに処理を移す。ここでは、データ数が「4」なので、「TABLSET10」からの処理を4回繰り返すとBレジスタの値が0となる。かかる8行目のコマンドが、図220(b)のステップS7に対応する。 Next, the command "DJNZ TABLESET10" on line 8 of Figure 221(b) decrements the value of the B register (subtracts "1"), and if the result of the decrement is not 0, it moves to address "TABLESET10", and if the result of the decrement is 0, it moves to the next command after that command. In this case, the number of data items is "4", so after repeating the process from "TABLESET10" four times, the value of the B register becomes 0. This command on line 8 corresponds to step S7 in Figure 220(b).

図221(b)の9行目のコマンド「EI」によって割込が許可される。かかる9行目のコマンドが、図220(b)のステップS8に対応する。10行目のコマンド「POP BC」によってスタック領域に退避されていたデータがBCレジスタに復帰される。かかる10行目のコマンドが、図220(b)のステップS9に対応する。そして、11行目のコマンド「RET」によって、1段上のルーチンに戻る。かかる11行目のコマンドが、図220(b)のステップS10に対応する。 The command "EI" on line 9 of Fig. 221(b) allows interrupts. This command on line 9 corresponds to step S8 of Fig. 220(b). The command "POP BC" on line 10 restores the data saved in the stack area to the BC register. This command on line 10 corresponds to step S9 of Fig. 220(b). Then, the command "RET" on line 11 returns to the routine one level above. This command on line 11 corresponds to step S10 of Fig. 220(b).

こうして、図222に示すように、メインROM500bのプログラムデータに記述された複数の1バイト値(55H、77H、66H、22H)を、メインRAM500cのワークエリアにおける変数(「_ERR_NUM」、「_CRE_TMR」、「_CRE_FLG」、「_SNS_OLD」)に転送することが可能となる。 In this way, as shown in FIG. 222, it becomes possible to transfer multiple 1-byte values (55H, 77H, 66H, 22H) written in the program data of main ROM 500b to variables ("_ERR_NUM", "_CRE_TMR", "_CRE_FLG", "_SNS_OLD") in the work area of main RAM 500c.

TABLSETモジュールは、複数のモジュールからサブルーチンとして呼び出される。例えば、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、本前兆中処理(AT状態=「3」)を実行するHID_LOTモジュール、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、終了画面中処理(AT状態=「4」)を実行するFIN_LOTモジュール、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、準備中処理(AT状態=「5」)を実行するPRE_LOTモジュール、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、REG中処理(AT状態=「6」)を実行するREG_LOTモジュール、図91におけるステップS2400-11で示した実行フラグ設定処理を実行するEXE_SETモジュールにおいて遊技状態および演出状態に応じて選択的に移行し、BIG中処理(AT状態=「7」)を実行するBIG_LOTモジュール、図85のステップS2020で示した設定値切り替え処理を実行するRANKSETモジュール、図91のステップS2400で示した図柄コード設定処理を実行するFGSETUPモジュール、図96のステップS2900で示した遊技移行処理を実行するGAMESETモジュール、図96のステップS2900-3で示した役物作動中処理を実行するJCGMSETモジュール等から呼び出される。 The TABLESET module is called as a subroutine from multiple modules. For example, the HID_LOT module, which selectively transitions depending on the game state and presentation state in the EXE_SET module that executes the execution flag setting process shown in step S2400-11 in FIG. 91, and executes this premonition process (AT state = "3"); the FIN_LOT module, which selectively transitions depending on the game state and presentation state in the EXE_SET module that executes the execution flag setting process shown in step S2400-11 in FIG. 91, and executes the end screen process (AT state = "4"); the PRE_LOT module, which selectively transitions depending on the game state and presentation state in the EXE_SET module that executes the execution flag setting process shown in step S2400-11 in FIG. 91, and executes the preparation process (AT state = "5"); It is called from the REG_LOT module, which selectively transitions depending on the game state and presentation state in the EXE_SET module that executes the execution flag setting process shown in step S2400-11 in FIG. 91, the BIG_LOT module, which selectively transitions depending on the game state and presentation state in the EXE_SET module that executes the execution flag setting process shown in step S2400-11 in FIG. 91, and executes the BIG_LOT module (AT state = "7") in the BIG_LOT module that selectively transitions depending on the game state and presentation state in the EXE_SET module that executes the execution flag setting process shown in step S2400-11 in FIG. 91, the RANKSET module that executes the setting value switching process shown in step S2020 in FIG. 85, the FGSETUP module that executes the symbol code setting process shown in step S2400 in FIG. 91, the GAMESET module that executes the game transition process shown in step S2900 in FIG. 96, and the JCGMSET module that executes the role-operated processing shown in step S2900-3 in FIG. 96.

このように、図221(b)に示したTABLSETモジュールのコマンドの総コマンドサイズは、2行目のコマンド「PUSH BC」1バイト+3行目のコマンド「DI」1バイト+4行目のコマンド「LD B,(HL)」1バイト+6行目のコマンド「INLD AC,(HL)」2バイト+7行目のコマンド「LDQ (C),A」2バイト+8行目のコマンド「DJNZ TABLSET10」2バイト+9行目のコマンド「EI」1バイト+10行目のコマンド「POP BC」1バイト+11行目のコマンド「RET」1バイト=12バイトとなり、総実行サイクルは、2行目3サイクル+3行目1サイクル+4行目2サイクル+6行目4サイクル+7行目3サイクル+8行目3サイクル(または2サイクル)+9行目1サイクル+10行目3サイクル+11行目3サイクル=23サイクル(または22サイクル)となる。なお、括弧内のサイクル数は、コマンド「DJNZ TABLSET10」によって移動しなかった場合の実行サイクルを示している。かかるTABLSETモジュールを設けることによって、上述した各モジュール内でテーブルセット処理を行うことなく、コマンドサイズ1バイトのコマンド「RST TABLSET」で賄うことができるので、コマンドの短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Thus, the total command size of the commands in the TABLESET module shown in Figure 221 (b) is: 1 byte of the command "PUSH BC" on the second line + 1 byte of the command "DI" on the third line + 1 byte of the command "LD B, (HL)" on the fourth line + 2 bytes of the command "INLD AC, (HL)" on the sixth line + 2 bytes of the command "LDQ (C), A" on the seventh line + 2 bytes of the command "DJNZ TABLESET10" on the eighth line + 1 byte of the command "EI" on the ninth line + 1 byte of the command "POP BC" 1 byte + 1 byte of the command "RET" on line 11 = 12 bytes, and the total execution cycles are 3 cycles on line 2 + 1 cycle on line 3 + 2 cycles on line 4 + 4 cycles on line 6 + 3 cycles on line 7 + 3 cycles (or 2 cycles) on line 8 + 1 cycle on line 9 + 3 cycles on line 10 + 3 cycles on line 11 = 23 cycles (or 22 cycles). The number of cycles in parentheses indicates the execution cycles when no movement is made by the command "DJNZ TABLESET10". By providing such a TABLESET module, it is possible to cover the table set processing in each of the above-mentioned modules with the command size of 1 byte "RST TABLESET", which shortens the command and makes it possible to secure the capacity of the control area for performing game control processing.

図223は、TABLSETモジュールを実現するためのコマンドの他の例を説明するための説明図である。ここでは、図221(b)のTABLSETモジュールのコマンド群を、図223(b)のTABLSETモジュールのコマンド群に置き換えており、他の、図221(a)のTABLSETモジュールを呼び出す任意の処理のコマンド群、図221(c)のメインROM500bのプログラムデータにおける1バイトデータ群、および、図221(d)のメインRAM500cのワークエリアにおける1バイトデータ群は、図223(a)、図223(c)、図223(d)として、そのまま用いている。ここでは、図223(a)、図223(c)、図223(d)のように、図221(a)、図221(c)、図221(d)と実質的に等しい処理についてはその説明を省略し、図223(b)の異なる処理のみを説明する。 Figure 223 is an explanatory diagram for explaining another example of commands for realizing the TABLESET module. Here, the commands of the TABLESET module in Figure 221(b) are replaced with the commands of the TABLESET module in Figure 223(b), and the commands of any other process that calls the TABLESET module in Figure 221(a), the 1-byte data group in the program data of the main ROM 500b in Figure 221(c), and the 1-byte data group in the work area of the main RAM 500c in Figure 221(d) are used as they are in Figures 223(a), 223(c), and 223(d). Here, as in Figures 223(a), 223(c), and 223(d), the description of the processes that are substantially the same as those in Figures 221(a), 221(c), and 221(d) is omitted, and only the different processes in Figure 223(b) are described.

図223(b)の1行目の指標「TABLSET:」は、当該TABLSETモジュールの先頭アドレスを示す。2行目のコマンド「PUSH BC」によって、BCレジスタの値がスタック領域に退避される。かかる2行目のコマンドが、図220(b)のステップS3に対応する。3行目のコマンド「DI」によって割込が禁止される。かかる3行目のコマンドが、図220(b)のステップS4に対応する。 The index "TABLESET:" on the first line of FIG. 223(b) indicates the starting address of the TABLESET module. The command "PUSH BC" on the second line saves the value of the BC register to the stack area. This command on the second line corresponds to step S3 in FIG. 220(b). The command "DI" on the third line disables interrupts. This command on the third line corresponds to step S4 in FIG. 220(b).

図223(b)の4行目のコマンド「LD B,(HL)」によって、HLレジスタで示されるアドレスに格納された1バイト値がBレジスタに読み出される。このとき、HLレジスタには、図223(a)で示したように、アドレス「T_ERR_RCV」が設定されている。したがって、図223(c)の2行目の1バイト値「(T_ERR_RCV_-T_ERR_RCV)/2」がデータ数(転送の繰り返し数)としてBレジスタに読み出されることとなる。図223(c)の例では、データ数は4となる。かかる図223(b)の4行目のコマンドが、図220(b)のステップS5に対応する。 The command "LD B, (HL)" on the fourth line of Figure 223(b) reads a one-byte value stored in the address indicated by the HL register into the B register. At this time, the address "T_ERR_RCV" is set in the HL register as shown in Figure 223(a). Therefore, the one-byte value "(T_ERR_RCV_-T_ERR_RCV)/2" on the second line of Figure 223(c) is read into the B register as the number of data (number of transfer repetitions). In the example of Figure 223(c), the number of data is 4. This command on the fourth line of Figure 223(b) corresponds to step S5 in Figure 220(b).

図223(b)の5行目のコマンド「INC HL」によって、HLレジスタの値が1だけインクリメントされる。6行目のコマンド「LDINTQR (HL)」によって、HLレジスタで示されるアドレスに格納された値で特定されるアドレスに、HLレジスタに「1」を加えた値で示されるアドレスに格納された値が転送され、HLレジスタの値に「2」を加えて次に転送するアドレスが設定され、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0になるまで、当該処理が繰り返される。かかる5、6行目のコマンドが、図220(b)のステップS6、S7に対応する。 The command "INC HL" on line 5 of Figure 223(b) increments the value of the HL register by 1. The command "LDINTQR (HL)" on line 6 transfers the value stored in the address indicated by the value stored in the HL register plus "1" to the address specified by the value stored in the address indicated by the HL register, adds "2" to the value of the HL register to set the next transfer address, decrements the value of the B register (subtracts "1"), and repeats this process until the decrement result becomes 0. The commands on lines 5 and 6 correspond to steps S6 and S7 of Figure 220(b).

ここで、コマンド「LDINTQR (HL)」は、Qレジスタの値をアドレスの上位1バイトとし、HLレジスタで示されるアドレスに格納された値をアドレスの下位1バイトとし、そのアドレスに、HLレジスタに「1」を加えた値で示されるアドレスに格納された値を転送し、HLレジスタの値に「2」を加えてHLレジスタの値を更新し、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0になるまで、値の転送を繰り返すコマンドである。かかるコマンドのコマンドサイズは「2」であり、実行サイクルは「5」である。 Here, the command "LDINTQR (HL)" sets the value of the Q register to the upper byte of the address, sets the value stored at the address indicated by the HL register to the lower byte of the address, transfers to that address the value stored at the address indicated by the value of the HL register plus "1", updates the value of the HL register by adding "2", decrements the value of the B register (subtracts "1"), and repeats the value transfer until the result of the decrement becomes 0. The command size of this command is "2", and the execution cycle is "5".

例えば、HLレジスタがアドレス「T_ERR_RCV」の値であった場合、Qレジスタの値をアドレスの上位1バイトとし、図223(c)の3行目における「_ERR_NUM」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに、図223(c)の3行目における「0」の値が転送され、HLレジスタの値に「2」が加えられ、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0になるまで、すなわち、4回転送が繰り返される。 For example, if the HL register holds the value of address "T_ERR_RCV," then the value of the Q register becomes the most significant byte of the address, the value of the least significant byte of "_ERR_NUM" on the third line of Figure 223(c) becomes the most significant byte of the address, the value of "0" on the third line of Figure 223(c) is transferred to that address, "2" is added to the value of the HL register, and the value of the B register is decremented (subtracted "1"); this transfer is repeated until the result of the decrement becomes 0, that is, four times.

続いて、図223(b)の7行目のコマンド「EI」によって割込が許可される。かかる7行目のコマンドが、図220(b)のステップS8に対応する。8行目のコマンド「POP BC」によってスタック領域に退避されていたデータがBCレジスタに復帰される。かかる8行目のコマンドが、図220(b)のステップS9に対応する。そして、9行目のコマンド「RET」によって、1段上のルーチンに戻る。かかる9行目のコマンドが、図220(b)のステップS10に対応する。 Next, interrupts are permitted by the command "EI" on line 7 of Fig. 223(b). This command on line 7 corresponds to step S8 of Fig. 220(b). The data saved in the stack area is restored to the BC register by the command "POP BC" on line 8. This command on line 8 corresponds to step S9 of Fig. 220(b). Then, the command "RET" on line 9 returns to the routine one level above. This command on line 9 corresponds to step S10 of Fig. 220(b).

図223(b)のTABLSETモジュールのコマンドの総コマンドサイズは、2行目のコマンド「PUSH BC」1バイト+3行目のコマンド「DI」1バイト+4行目のコマンド「LD B,(HL)」1バイト+5行目のコマンド「INC HL」1バイト+6行目のコマンド「LDINTQR (HL)」2バイト+7行目のコマンド「EI」1バイト+8行目のコマンド「POP BC」1バイト+9行目のコマンド「RET」1バイト=9バイトとなり、総実行サイクルは、2行目3サイクル+3行目1サイクル+4行目2サイクル+5行目1サイクル+6行目5サイクル+7行目1サイクル+8行目3サイクル+9行目3サイクル=19サイクルとなる。したがって、図221(b)の場合と比べ、総コマンドサイズが3バイト削減され、総実行サイクルも少なくとも4サイクル削減される。特に、図221(b)の例では、コマンド「DJNZ TABLSET10」におけるBレジスタの値が2以上であれば、その値に10サイクル(6行目4サイクル+7行目3サイクル+8行目3サイクル)を乗じた分だけ総実行サイクルが増えるので、図221(b)の総実行サイクルの削減量も多くなる。かかるTABLSETモジュールによって、コマンドの更なる短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 The total command size of the commands in the TABLESET module in Fig. 223(b) is 1 byte of the command "PUSH BC" on line 2 + 1 byte of the command "DI" on line 3 + 1 byte of the command "LD B, (HL)" on line 4 + 1 byte of the command "INC HL" on line 5 + 2 bytes of the command "LDINTQR (HL)" on line 6 + 1 byte of the command "EI" on line 7 + 1 byte of the command "POP BC" on line 8 + 1 byte of the command "RET" on line 9 = 9 bytes, and the total execution cycles are 3 cycles on line 2 + 1 cycle on line 3 + 2 cycles on line 4 + 1 cycle on line 5 + 5 cycles on line 6 + 1 cycle on line 7 + 3 cycles on line 8 + 3 cycles on line 9 = 19 cycles. Therefore, compared to the case in Fig. 221(b), the total command size is reduced by 3 bytes, and the total execution cycles are also reduced by at least 4 cycles. In particular, in the example of FIG. 221(b), if the value of the B register in the command "DJNZ TABLESET10" is 2 or more, the total execution cycles increase by 10 cycles (4 cycles on line 6 + 3 cycles on line 7 + 3 cycles on line 8) multiplied by that value, so the reduction in the total execution cycles in FIG. 221(b) also increases. This TABLESET module makes it possible to further shorten commands and reduce the processing load, and ensure the capacity of the control area for performing game control processing.

また、ここでは、図221の例と比較して、AレジスタおよびCレジスタを利用していない。したがって、Aレジスタの値やCレジスタの値を意図せず更新してしまうことはない。また、図221の例では、AレジスタやCレジスタが既に利用されている場合、スタックしてAレジスタやCレジスタの値を退避する必要があったが、ここでは、AレジスタやCレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 In addition, unlike the example in FIG. 221, the A register and C register are not used here. Therefore, the values in the A register and C register will not be updated unintentionally. Also, in the example in FIG. 221, if the A register or C register was already in use, it was necessary to save the values in the A register and C register by stacking them, but here, since the A register and C register are not used, stack processing is not required. In this way, resources can be used efficiently.

また、図221(b)と図223(b)とを比較して理解できるように、図221(b)において4行(5行目~8行目)を占有していたコマンド群を、図223(b)においては2行(5、6行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing FIG. 221(b) with FIG. 223(b), the command group that occupies four lines (lines 5 to 8) in FIG. 221(b) can be represented by two lines (lines 5 and 6) in FIG. 223(b), making it possible to reduce the number of commands and lighten the design load.

<DECWMQ>
図224は、IPT_PCモジュールの具体的な処理を示したフローチャートである。IPT_PCモジュールは、上記タイマ割込み処理(図98参照)のステップS3100-21において4回に1回読み出される時間監視処理を実行する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。
<DECWMQ>
Fig. 224 is a flow chart showing the specific processing of the IPT_PC module. The IPT_PC module executes the time monitoring processing that is read out once every four times in step S3100-21 of the timer interrupt processing (see Fig. 98). The numerical values of step S in this figure are used only in the explanation of this figure.

時間監視処理は、図82~図98の様々なステップにおいてセットされたタイマ(例えば、1遊技間タイマ等)を1ずつ減算する処理である。 The time monitoring process is a process that subtracts one from a timer (e.g., a timer for one game) that was set in various steps in Figures 82 to 98.

メインCPU500aは、図224(a)に示すように、タイマが格納されたアドレスをHLレジスタに読み出した後(S1)、図224(b)に示すWORDDECモジュールを実行し(S2)、HLレジスタに示されたアドレスの値を1減算する(S3)。そして、コマンド「RET」によって、当該WORDDECモジュールを終了してIPT_PCモジュールに戻る(S4)。 As shown in FIG. 224(a), the main CPU 500a reads the address where the timer is stored into the HL register (S1), then executes the WORDDEC module shown in FIG. 224(b) (S2) and subtracts 1 from the value of the address shown in the HL register (S3). Then, the WORDDEC module is terminated by the command "RET" to return to the IPT_PC module (S4).

図225は、IPT_PCモジュールを実現するためのコマンドの一例を説明するための説明図である。図224で示したフローチャートは、例えば、図225に示したプログラムによって実現される。なお、図225では、一例として、1遊技間タイマを減算する処理について説明する。 Figure 225 is an explanatory diagram for explaining an example of a command for implementing the IPT_PC module. The flowchart shown in Figure 224 is implemented, for example, by the program shown in Figure 225. Note that Figure 225 explains, as an example, the process of decrementing the timer between one play.

図225(a)の1行目の指標「IPT_PC:」は、当該IPT_PCモジュールの先頭アドレスを示す。そして、図225(a)の2行目のコマンド「LDQ HL,(LOW _GAM_TMR)」によって、Qレジスタの値をHレジスタに読み出し、アドレス「_GAM_TMR」の下位1バイトの値をLレジスタに読み出す。かかる2行目のコマンドが、図224(a)のステップS1に対応する。 The index "IPT_PC:" on the first line of Figure 225(a) indicates the starting address of the IPT_PC module. The command "LDQ HL, (LOW _GAM_TMR)" on the second line of Figure 225(a) reads the value of the Q register into the H register, and reads the value of the lowest byte of the address "_GAM_TMR" into the L register. This command on the second line corresponds to step S1 in Figure 224(a).

そして、図225(a)の3行目のコマンド「CALLF WORDDEC」によって、図225(b)に示すWORDDECモジュールが呼び出される。かかる2行目のコマンドが、図224(a)のステップS2に対応する。 Then, the command "CALLF WORDDEC" on the third line of FIG. 225(a) calls the WORDDEC module shown in FIG. 225(b). The command on the second line corresponds to step S2 in FIG. 224(a).

図225(b)の1行目の指標「WORDDEC:」は、当該WORDDECモジュールの先頭アドレスを示す。そして、図225(b)の2行目のコマンド「DCPWLD (HL),0」によって、HLレジスタに示されるアドレス(より厳密には、HLレジスタに示されるアドレスと、その次のアドレス)に格納された2バイト長の値(1遊技間タイマ)が読み出され、読み出された値から1が減算(更新)される。そして、減算することによりキャリーフラグに1が立っていた場合、すなわち、読み出された値が0(所定の値)であった場合、HLレジスタに示されるアドレス(より厳密には、HLレジスタに示されるアドレスと、その次のアドレス)に固定値「0(特定値)」が格納される。一方、キャリーフラグに1が立っていなかった場合、すなわち、読み出された値が1以上であった場合、減算された値が、HLレジスタに示されるアドレス(より厳密には、HLレジスタに示されるアドレスと、その次のアドレス)に格納される。かかる2行目のコマンドが、図224(b)のステップS3に対応する。 The index "WORDDEC:" on the first line of FIG. 225(b) indicates the starting address of the WORDDEC module. The command "DCPWLD (HL), 0" on the second line of FIG. 225(b) reads out a 2-byte value (one game timer) stored in the address indicated by the HL register (more precisely, the address indicated by the HL register and the next address), and subtracts (updates) 1 from the read value. If the carry flag is set to 1 by the subtraction, that is, if the read value is 0 (a specified value), a fixed value "0 (specific value)" is stored in the address indicated by the HL register (more precisely, the address indicated by the HL register and the next address). On the other hand, if the carry flag is not set to 1, that is, if the read value is 1 or more, the subtracted value is stored in the address indicated by the HL register (more precisely, the address indicated by the HL register and the next address). The command on the second line corresponds to step S3 in Figure 224 (b).

そして、図225(b)の3行目のコマンド「RET」によって、当該WORDDECモジュールを終了してIPT_PCモジュールに戻る。かかる3行目のコマンドが、図224(b)のステップS4に対応する。こうして、HLレジスタで示されるアドレスに格納された2バイト長の値(1遊技間タイマ)が0になるまで、1回の処理毎に1ずつデクリメントすることが可能となる。 Then, the command "RET" on the third line of FIG. 225(b) ends the WORDDEC module and returns to the IPT_PC module. This command on the third line corresponds to step S4 of FIG. 224(b). In this way, it becomes possible to decrement the 2-byte value (inter-game timer) stored at the address indicated by the HL register by 1 for each processing until it becomes 0.

ここで、図225(a)および図225(b)のコマンド群を図225(c)のように変更することができる。ここでは、図225(a)および図225(b)と実質的に等しい処理についてはその説明を省略し、図225(c)の異なる処理のみを説明する。 The command group in Fig. 225(a) and Fig. 225(b) can be changed to that in Fig. 225(c). Here, we will omit the explanation of the processes that are essentially the same as Fig. 225(a) and Fig. 225(b), and only explain the different processes in Fig. 225(c).

図225(c)の2行目のコマンド「DECWMQ (LOW _GAM_TMR)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_GAM_TMR」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値が読み出される。そして、読み出された値から1が減算(デクリメント)され、減算することによりキャリーフラグに1が立っていた場合、すなわち、読み出された値が0であった場合、そのアドレスに固定値「0」が格納される。一方、キャリーフラグに1が立っていなかった場合、すなわち、読み出された値が1以上であった場合、減算された値が、そのアドレスに格納される。 The command "DECWMQ (LOW _GAM_TMR)" on the second line of Figure 225 (c) sets the value of the Q register to the most significant byte of the address, sets the value of the least significant byte of the address "_GAM_TMR" to the most significant byte of the address, and reads out the value stored at that address. Then, 1 is subtracted (decremented) from the value read, and if the carry flag is set to 1 after the subtraction, i.e., if the value read is 0, a fixed value of "0" is stored in that address. On the other hand, if the carry flag is not set to 1, i.e., if the value read is 1 or greater, the subtracted value is stored in that address.

ここで、図225(a)および図225(b)に示したコマンド群の総コマンドサイズは、図225(a)の2行目のコマンド「LDQ A,(LOW _GAM_TMR)」2バイト+図225(a)の3行目のコマンド「CALLF WORDDEC」2バイト+図225(b)の2行目のコマンド「DCPWLD (HL),0」4バイト+図225(b)の3行目のコマンド「RET」1バイト=9バイトとなり、総実行サイクルは、図225(a)の2行目2サイクル+図225(a)の3行目4サイクル+図225(b)の2行目9サイクル+図225(b)の3行目3サイクル=18サイクルとなる。 The total command size of the command group shown in Fig. 225(a) and Fig. 225(b) is 2 bytes of the command "LDQ A, (LOW_GAM_TMR)" on the second line of Fig. 225(a) + 2 bytes of the command "CALLF WORDDEC" on the third line of Fig. 225(a) + 4 bytes of the command "DCPWLD (HL), 0" on the second line of Fig. 225(b) + 1 byte of the command "RET" on the third line of Fig. 225(b) = 9 bytes, and the total execution cycles are 2 cycles on the second line of Fig. 225(a) + 4 cycles on the third line of Fig. 225(a) + 9 cycles on the second line of Fig. 225(b) + 3 cycles on the third line of Fig. 225(b) = 18 cycles.

一方、図225(c)に示したコマンド群の総コマンドサイズは、2行目のコマンド「DECWMQ (LOW _GAM_TMR)」3バイト=3バイトとなり、総実行サイクルは、2行目8サイクル=8サイクルとなる。 On the other hand, the total command size of the command group shown in FIG. 225(c) is the command "DECWMQ (LOW_GAM_TMR)" on the second line, which is 3 bytes = 3 bytes, and the total execution cycles are 8 cycles on the second line = 8 cycles.

したがって、図225(a)および図225(b)のコマンド群を図225(c)のコマンド群に置き換えることで、総コマンドサイズが6バイト削減され、総実行サイクルも10サイクル削減される。かかる置き換えによって、コマンドの短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Therefore, by replacing the command groups in Fig. 225(a) and Fig. 225(b) with the command group in Fig. 225(c), the total command size is reduced by 6 bytes, and the total execution cycles are also reduced by 10 cycles. This replacement shortens the commands and reduces the processing load, making it possible to secure the capacity of the control area for performing game control processing.

また、図225(a)と図225(c)とを比較して理解できるように、図225(a)において2行(2行目~3行目)を占有していたコマンド群を、図225(c)においては1行(2行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 225(a) and 225(c), a group of commands that occupy two lines (lines 2 and 3) in Figure 225(a) can be represented in one line (line 2) in Figure 225(c), making it possible to reduce the number of commands and lighten the design load.

また、図225(c)の例では、WORDDECモジュールも削除することが可能であり、貴重な汎用モジュールの領域を空け、その領域に他のモジュールを配置することができる。こうしてリソースの有効活用が可能となる。 In the example of Figure 225 (c), the WORDDEC module can also be deleted, freeing up valuable space for general-purpose modules, allowing other modules to be placed in that space. This allows for more efficient use of resources.

<RIBIT>
図226は、CMDPROCモジュールの具体的な処理を示したフローチャートである。CMDPROCモジュールは、上記サブコマンド送信処理(図98のステップS3100-11参照)を実行する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。
<RIBIT>
Fig. 226 is a flow chart showing the specific processing of the CMDPROC module. The CMDPROC module executes the subcommand transmission processing (see step S3100-11 in Fig. 98). The numerical values of step S in this figure are used only in the explanation of this figure.

メインCPU500aは、図226に示すように、割込み待ちモニタレジスタの値を取得する(S1)。ここで、割込み待ちモニタレジスタは、1バイトで構成されており、6ビット目に、電源断予告信号が入力される。そして、スロットマシン400の電源電圧が所定値以下になると、電源断予告信号が入力され、割込み待ちモニタレジスタの6ビット目が1になり、それ以外の場合は0になっている。 As shown in FIG. 226, the main CPU 500a acquires the value of the interrupt wait monitor register (S1). Here, the interrupt wait monitor register is composed of one byte, and a power-off warning signal is input to the sixth bit. When the power supply voltage of the slot machine 400 falls below a predetermined value, a power-off warning signal is input and the sixth bit of the interrupt wait monitor register becomes 1, and otherwise it is 0.

メインCPU500aは、取得した割込み待ちモニタレジスタの6ビット目を参照することで、電源断予告信号が入力されているか、すなわち、外部割込み要求があるかを判定する(S2)。そして、外部割込み要求があれば(S2におけるYES)、当該CMDPROCモジュールを終了して1段上のルーチンに戻り、外部割込み要求がなければ(S2におけるNO)、次の処理に移り、サブコマンドを副制御基板502に送信する。 The main CPU 500a refers to the sixth bit of the acquired interrupt wait monitor register to determine whether a power-off warning signal has been input, i.e., whether there is an external interrupt request (S2). If there is an external interrupt request (YES in S2), the CMDPROC module is terminated and the process returns to the routine one step above. If there is no external interrupt request (NO in S2), the process moves to the next process and sends a subcommand to the sub-control board 502.

図227は、CMDPROCモジュールを実現するためのコマンドの一例を説明するための説明図である。図226で示したフローチャートは、例えば、図227に示したプログラムによって実現される。 Figure 227 is an explanatory diagram for explaining an example of a command for implementing the CMDPROC module. The flowchart shown in Figure 226 is implemented, for example, by the program shown in Figure 227.

図227(a)の1行目の指標「CMDPROC:」は、当該CMDPROCモジュールの先頭アドレスを示す。そして、図227(a)の2行目のコマンド「IN A,(@IRR____)」によって、Uレジスタの値をアドレスの上位1バイトとし、割込み待ちモニタレジスタのアドレスの下位1バイトを示す固定値「@IRR____」をアドレスの下位1バイトとし、そのアドレスに格納された値をAレジスタに読み出す。かかる2行目のコマンドが、図226のステップS1に対応する。 The index "CMDPROC:" on the first line of Fig. 227(a) indicates the starting address of the CMDPROC module. The command "IN A, (@IRR_____)" on the second line of Fig. 227(a) sets the value of the U register to the most significant byte of the address, sets the fixed value "@IRR_____" indicating the least significant byte of the address of the interrupt wait monitor register to the least significant byte of the address, and reads the value stored at that address into the A register. This command on the second line corresponds to step S1 in Fig. 226.

そして、図227(a)の3行目のコマンド「RBIT NZ,6,A」によって、Aレジスタに格納された値の6ビット目が0でなければ、すなわち、1であれば、コマンド「RET」を実行するように、当該CMDPROCモジュールを終了して1段上のルーチンに戻る。一方、Aレジスタに格納された値の6ビット目が0であれば、次のコマンドに処理を移す。かかる3行目のコマンドが、図226のステップS2に対応する。 Then, the command "RBIT NZ,6,A" on the third line of Fig. 227(a) causes the CMDPROC module to terminate and return to the routine one level higher, so that if the sixth bit of the value stored in the A register is not 0, i.e., if it is 1, the command "RET" is executed. On the other hand, if the sixth bit of the value stored in the A register is 0, processing moves to the next command. This command on the third line corresponds to step S2 in Fig. 226.

ここで、図227(a)のコマンド群を図227(b)のように変更することができる。ここでは、図227(a)と実質的に等しい処理についてはその説明を省略し、図227(b)の異なる処理のみを説明する。 The commands in FIG. 227(a) can be changed to those in FIG. 227(b). Here, we will omit the explanation of the processes that are essentially the same as those in FIG. 227(a), and only explain the different processes in FIG. 227(b).

図227(b)の2行目のコマンド「RIBIT NZ,6,(@IRR____)」によって、Uレジスタの値をアドレスの上位1バイトとし、割込み待ちモニタレジスタのアドレスの下位1バイトを示す固定値「@IRR____」をアドレスの下位1バイトとし、そのアドレスに格納された値の6ビット目が0でなければ、コマンド「RET」を実行するように、当該CMDPROCモジュールを終了して1段上のルーチンに戻る。一方、そのアドレスに格納された値の6ビット目が0であれば、次のコマンドに処理を移す。 The command "RIBIT NZ,6,(@IRR_____)" on the second line of Fig. 227(b) sets the value of the U register to the upper byte of the address, sets the fixed value "@IRR_____" indicating the lower byte of the address of the interrupt wait monitor register to the lower byte of the address, and if the 6th bit of the value stored at that address is not 0, terminates the CMDPROC module and returns to the routine one level above to execute the command "RET". On the other hand, if the 6th bit of the value stored at that address is 0, processing moves to the next command.

ここで、図227(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「IN A,(@IRR____)」2バイト+3行目のコマンド「RBIT NZ,6,A」2バイト=4バイトとなり、総実行サイクルは、2行目3サイクル+3行目5(3)サイクル=8(6)サイクルとなる。なお、括弧内のサイクル数は、コマンド「RBIT NZ,6,A」によって移動しなかった場合の実行サイクルを示している。 The total command size of the command group shown in FIG. 227(a) is 2 bytes of the command "IN A, (@IRR____)" on line 2 + 2 bytes of the command "RBIT NZ, 6, A" on line 3 = 4 bytes, and the total execution cycles are 3 cycles on line 2 + 5 (3) cycles on line 3 = 8 (6) cycles. Note that the number of cycles in parentheses indicates the execution cycles if no movement is made by the command "RBIT NZ, 6, A".

一方、図227(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「RIBIT NZ,6,(@IRR____)」3バイト=3バイトとなり、総実行サイクルは、2行目7(5)サイクル=7(5)サイクルとなる。なお、括弧内のサイクル数は、コマンド「RIBIT NZ,6,(@IRR____)」によって移動しなかった場合の実行サイクルを示している。 On the other hand, the total command size of the command group shown in FIG. 227(b) is 3 bytes = 3 bytes for the command "RIBIT NZ,6,(@IRR____)" on line 2, and the total execution cycles are 7(5) cycles on line 2 = 7(5) cycles. Note that the number of cycles in parentheses indicates the execution cycles if no movement is made by the command "RIBIT NZ,6,(@IRR____)."

したがって、図227(a)のコマンド群を図227(b)のコマンド群に置き換えることで、総コマンドサイズが1バイト削減され、総実行サイクルも少なくとも1サイクル削減される。かかる置き換えによって、コマンドの短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Therefore, by replacing the command group in FIG. 227(a) with the command group in FIG. 227(b), the total command size is reduced by 1 byte, and the total execution cycle is also reduced by at least 1 cycle. This replacement shortens the commands and reduces the processing load, making it possible to secure the capacity of the control area for performing game control processing.

また、図227(b)の例では、図227(a)で利用していたAレジスタを利用していない。したがって、Aレジスタの値を意図せず更新してしまうことはない。また、図227(a)の例では、Aレジスタが既に利用されている場合、スタックしてAレジスタの値を退避する必要があったが、ここでは、Aレジスタを利用しないので、スタック処理も必要ない。こうして、リソースを有効利用することが可能となる。 Furthermore, in the example of FIG. 227(b), the A register used in FIG. 227(a) is not used. Therefore, the value of the A register will not be updated unintentionally. Also, in the example of FIG. 227(a), if the A register was already in use, it was necessary to save the value of the A register by stacking, but here, since the A register is not used, stack processing is not necessary. In this way, resources can be used efficiently.

また、図227(a)と図227(b)とを比較して理解できるように、図227(a)において2行(2行目~3行目)を占有していたコマンド群を、図227(b)においては1行(2行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 227(a) and 227(b), a group of commands that occupy two lines (lines 2 and 3) in Figure 227(a) can be represented in one line (line 2) in Figure 227(b), making it possible to reduce the number of commands and lighten the design load.

<AND+OR>
図228は、SET_PLSモジュールの具体的な処理を示したフローチャートである。SET_PLSモジュールは、上記ステッピングモータ制御処理(図98のステップS3100-13参照)において読み出される励磁パターン更新処理を実行する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。
<AND+OR>
Fig. 228 is a flow chart showing the specific processing of the SET_PLS module. The SET_PLS module executes the excitation pattern update processing read out in the stepping motor control processing (see step S3100-13 in Fig. 98). The numerical values of step S in this figure are used only in the description of this figure.

メインCPU500aは、図228に示すように、ステッピングモータ452の励磁パターンが格納された励磁パターンテーブルの先頭アドレスを取得する(S1)。メインCPU500aは、取得した励磁パターンテーブルの先頭アドレスに対して、予めAレジスタに格納されたオフセット値を加算、すなわち、オフセットする(S2)。 As shown in FIG. 228, the main CPU 500a acquires the top address of the excitation pattern table in which the excitation pattern of the stepping motor 452 is stored (S1). The main CPU 500a adds, i.e., offsets, the offset value previously stored in the A register to the acquired top address of the excitation pattern table (S2).

そして、メインCPU500aは、所定の出力ポートに格納された出力イメージを取得し(S3)、取得した出力イメージの上位4ビットをマスクする(S4)。なお、ここで取得した出力イメージは、1バイト長で構成されており、上位4ビットに、ステッピングモータ452の励磁パターンが示されている。そこで、ここでは、出力イメージの上位4ビットをマスクすることで、励磁パターンをクリアしている。 Then, the main CPU 500a acquires the output image stored in a specified output port (S3) and masks the upper four bits of the acquired output image (S4). Note that the output image acquired here is 1 byte long, and the upper four bits indicate the excitation pattern of the stepping motor 452. Therefore, by masking the upper four bits of the output image, the excitation pattern is cleared.

その後、メインCPU500aは、ステップS2においてオフセットされたアドレスに示される値と、取得した出力イメージとの論理和を取ることにより、励磁パターンを合成し(S5)、合成した励磁パターンを出力イメージとして更新し(S6)、当該SET_PLSモジュールを終了して1段上のルーチンに戻る(S7)。 Then, the main CPU 500a synthesizes the excitation pattern by taking the logical sum of the value indicated at the address offset in step S2 and the acquired output image (S5), updates the synthesized excitation pattern as the output image (S6), terminates the SET_PLS module, and returns to the routine one level above (S7).

図229は、SET_PLSモジュールを実現するためのコマンドの一例を説明するための説明図である。図228で示したフローチャートは、例えば、図229に示したプログラムによって実現される。 Figure 229 is an explanatory diagram for explaining an example of a command for implementing the SET_PLS module. The flowchart shown in Figure 228 is implemented, for example, by the program shown in Figure 229.

図229(a)の1行目の指標「SET_PLS:」は、当該SET_PLSモジュールの先頭アドレスを示す。そして、図229(a)の2行目のコマンド「LD HL,T_PLS_PTN」によって、ステッピングモータ452の励磁パターンが格納された励磁パターンテーブルのアドレス「T_PLS_PTN」をHLレジスタに読み出す。かかる2行目のコマンドが、図228のステップS1に対応する。 The index "SET_PLS:" on the first line of FIG. 229(a) indicates the starting address of the SET_PLS module. Then, the command "LD HL, T_PLS_PTN" on the second line of FIG. 229(a) reads the address "T_PLS_PTN" of the excitation pattern table in which the excitation pattern of the stepping motor 452 is stored into the HL register. This command on the second line corresponds to step S1 in FIG. 228.

そして、図229(a)の3行目のコマンド「ADDWB HL,A」によって、HLレジスタの値にAレジスタの値(オフセット値)が加算され、HLレジスタの値が更新される。かかる3行目のコマンドが、図228のステップS2に対応する。 Then, the command "ADDWB HL, A" on the third line of FIG. 229(a) adds the value of the A register (offset value) to the value of the HL register, updating the value of the HL register. This command on the third line corresponds to step S2 in FIG. 228.

その後、図229(a)の4行目のコマンド「LD A,(IY+@OFS_OUT_PRT)」によって、出力ポートのアドレス「IY+@OFS_OUT_PRT」に格納された値(出力イメージ)をAレジスタに読み出す。かかる4行目のコマンドが、図228のステップS3に対応する。 Then, the value (output image) stored in the output port address "IY+@OFS_OUT_PRT" is read into the A register by the command "LD A, (IY+@OFS_OUT_PRT)" on the fourth line of Figure 229(a). This command on the fourth line corresponds to step S3 in Figure 228.

続いて、図229(a)の5行目のコマンド「AND A,00001111B」によって、Aレジスタの値(出力イメージ)と、固定値「00001111B」(第1の値)との論理積が演算され(上位4ビットがマスクされ)、演算結果がAレジスタに格納される。かかる5行目のコマンドが、図228のステップS4に対応する。 Next, the command "AND A,00001111B" on line 5 of Fig. 229(a) calculates the logical product of the value of the A register (output image) and the fixed value "00001111B" (first value) (the upper 4 bits are masked), and stores the result in the A register. This command on line 5 corresponds to step S4 in Fig. 228.

そして、図229(a)の6行目のコマンド「OR A,(HL)」によって、Aレジスタの値(マスクされた出力イメージ)と、HLレジスタに示されるアドレスに格納された値(励磁パターン、第2の値)との論理和が演算され、演算結果がAレジスタに格納される。かかる6行目のコマンドが、図228のステップS5に対応する。 Then, the command "OR A, (HL)" on line 6 of FIG. 229(a) calculates the logical sum of the value of the A register (masked output image) and the value stored at the address indicated by the HL register (excitation pattern, second value), and stores the calculation result in the A register. This command on line 6 corresponds to step S5 in FIG. 228.

その後、図229(a)の7行目のコマンド「LD (IY+@OFS_OUT_PRT),A」によって、Aレジスタの値が出力ポートのアドレス「IY+@OFS_OUT_PRT」に格納される。かかる7行目のコマンドが、図228のステップS6に対応する。そして、図229(a)の8行目のコマンド「RET」によって、当該SET_PLSモジュールが終了して1段上のルーチンに戻る。かかる8行目のコマンドが、図228のステップS7に対応する。 After that, the command "LD (IY+@OFS_OUT_PRT), A" on line 7 of Fig. 229(a) stores the value of the A register in the output port address "IY+@OFS_OUT_PRT". This command on line 7 corresponds to step S6 in Fig. 228. Then, the command "RET" on line 8 of Fig. 229(a) ends the SET_PLS module and returns to the routine one level above. This command on line 8 corresponds to step S7 in Fig. 228.

ここで、図229(a)のコマンド群を図229(b)のように変更することができる。ここでは、図229(a)と実質的に等しい処理についてはその説明を省略し、図229(b)の異なる処理のみを説明する。 The commands in FIG. 229(a) can be changed to those in FIG. 229(b). Here, we will omit the explanation of the processes that are essentially the same as those in FIG. 229(a), and only explain the different processes in FIG. 229(b).

図229(b)の3行目のコマンド「RST CALADRS」によって、図229(c)に示すCALADRSモジュールが呼び出される。図229(c)の1行目の指標「CALADRS:」は、当該CALADRSモジュールの先頭アドレスを示す。そして、図229(c)の2行目のコマンド「ADDWB HL,A」によって、HLレジスタの値にAレジスタの値(オフセット値)が加算され、HLレジスタの値が更新される。そして、3行目のコマンド「LD A,(HL)」によって、HLレジスタで示されるアドレスに格納された1バイト値がAレジスタに読み出される。そして、図229(c)の4行目のコマンド「RET」によって、当該CALADRSモジュールを終了してSET_PLSモジュールに戻る。 The command "RST CALADRS" on the third line of Fig. 229(b) calls the CALADRS module shown in Fig. 229(c). The index "CALADRS:" on the first line of Fig. 229(c) indicates the starting address of the CALADRS module. The command "ADDWB HL, A" on the second line of Fig. 229(c) adds the value of the A register (offset value) to the value of the HL register, updating the value of the HL register. The command "LD A, (HL)" on the third line reads a one-byte value stored at the address indicated by the HL register into the A register. The command "RET" on the fourth line of Fig. 229(c) ends the CALADRS module and returns to the SET_PLS module.

その後、図229(b)の4行目のコマンド「AND (IY+@OFS_OUT_PRT),00001111B」によって、アドレス「IY+@OFS_OUT_PRT」に格納された値(出力イメージ)と、固定値「00001111B」との論理積が演算され(上位4ビットがマスクされ)、演算結果がアドレス「IY+@OFS_OUT_PRT」に格納される。 Then, the command "AND (IY+@OFS_OUT_PRT), 00001111B" on the fourth line of Figure 229(b) calculates the logical product of the value (output image) stored at address "IY+@OFS_OUT_PRT" and the fixed value "00001111B" (the upper 4 bits are masked), and the result of the calculation is stored at address "IY+@OFS_OUT_PRT".

そして、図229(b)の5行目のコマンド「OR (IY+@OFS_OUT_PRT),A」によって、アドレス「IY+@OFS_OUT_PRT」に格納された値(マスクされた出力イメージ)と、Aレジスタの値(励磁パターン)との論理和が演算され、演算結果がアドレス「IY+@OFS_OUT_PRT」に格納される。 Then, the command "OR (IY+@OFS_OUT_PRT), A" on the fifth line of Figure 229(b) calculates the logical sum of the value stored in address "IY+@OFS_OUT_PRT" (masked output image) and the value of the A register (excitation pattern), and stores the result of the calculation in address "IY+@OFS_OUT_PRT".

ここで、図229(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LD HL,T_PLS_PTN」3バイト+3行目のコマンド「ADDWB HL,A」1バイト+4行目のコマンド「LD A,(IY+@OFS_OUT_PRT)」3バイト+5行目のコマンド「AND A,00001111B」2バイト+6行目のコマンド「OR A,(HL)」1バイト+7行目のコマンド「LD (IY+@OFS_OUT_PRT),A」3バイト+8行目のコマンド「RET」1バイト=14バイトとなり、総実行サイクルは、2行目3サイクル+3行目1サイクル+4行目4サイクル+5行目2サイクル+6行目2サイクル+7行目4サイクル+8行目3サイクル=19サイクルとなる。 The total command size of the command group shown in FIG. 229(a) is 3 bytes of the command "LD HL, T_PLS_PTN" on line 2 + 1 byte of the command "ADDWB HL, A" on line 3 + 3 bytes of the command "LD A, (IY + @OFS_OUT_PRT)" on line 4 + 2 bytes of the command "AND A, 00001111B" on line 5 + 1 byte of the command "OR A, (HL)" on line 6 + 3 bytes of the command "LD (IY + @OFS_OUT_PRT), A" on line 7 + 1 byte of the command "RET" on line 8 = 14 bytes, and the total execution cycles are 3 cycles on line 2 + 1 cycle on line 3 + 4 cycles on line 4 + 2 cycles on line 5 + 2 cycles on line 6 + 4 cycles on line 7 + 3 cycles on line 8 = 19 cycles.

一方、図229(b)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LD HL,T_PLS_PTN」3バイト+3行目のコマンド「RST CALADRS」1バイト+4行目のコマンド「AND (IY+@OFS_OUT_PRT),00001111B」4バイト+5行目のコマンド「OR (IY+@OFS_OUT_PRT),A」3バイト+6行目のコマンド「RET」1バイト=12バイトとなり、総実行サイクルは、2行目3サイクル+3行目4サイクル+4行目7サイクル+5行目6サイクル+6行目3サイクル=23サイクルとなる。 On the other hand, the total command size of the command group shown in FIG. 229(b) is 3 bytes of the command "LD HL, T_PLS_PTN" on line 2 + 1 byte of the command "RST CALADRS" on line 3 + 4 bytes of the command "AND (IY + @OFS_OUT_PRT), 00001111B" on line 4 + 3 bytes of the command "OR (IY + @OFS_OUT_PRT), A" on line 5 + 1 byte of the command "RET" on line 6 = 12 bytes, and the total execution cycles are 3 cycles on line 2 + 4 cycles on line 3 + 7 cycles on line 4 + 6 cycles on line 5 + 3 cycles on line 6 = 23 cycles.

したがって、図229(a)のコマンド群を図229(b)のコマンド群に置き換えることで、総コマンドサイズが2バイト削減される。かかる置き換えによって、コマンドの短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。なお、汎用モジュールであるCALADRSモジュールは、他のモジュールによって読み出されて実行されるものであり、新たに追加するものではない。 Therefore, by replacing the command group in FIG. 229(a) with the command group in FIG. 229(b), the total command size is reduced by 2 bytes. This replacement shortens the commands and makes it possible to secure the capacity of the control area for performing game control processing. Note that the CALADRS module, which is a general-purpose module, is read and executed by other modules and is not something that is newly added.

また、図229(a)と図229(b)とを比較して理解できるように、図229(b)のコマンド群は、図229(a)のコマンド群よりも2行減らすことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 229(a) and 229(b), the command group in Figure 229(b) can be reduced by two lines compared to the command group in Figure 229(a), making it possible to reduce the number of commands themselves and lighten the design load.

<CPLBQ>
図230は、OTM_ATKモジュールの具体的な処理を示したフローチャートである。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。
<CPLBQ>
230 is a flow chart showing the specific processing of the OTM_ATK module. The numerical values of step S in this figure are used only in the explanation of this figure.

ここで、スロットマシン400の別例としては、所謂チャンスゾーン演出状態が設けられている。チャンスゾーン演出状態は、通常演出状態よりもAT抽選に当選しやすい状態であり、所定遊技に亘って移行される。例えば、チャンスゾーン演出状態が8遊技に亘って移行され、1遊技毎にAT抽選を行う。そして、スロットマシン400の別例では、チャンスゾーン演出状態における各遊技でのAT抽選の結果を1ビットで記憶する(当選=1、非当選=0)ことで、全てのAT抽選の結果を合計8ビット(1バイト長)の当否情報として管理する。 Here, as another example of the slot machine 400, a so-called chance zone presentation state is provided. The chance zone presentation state is a state in which it is easier to win the AT lottery than the normal presentation state, and is transitioned over a specified number of games. For example, the chance zone presentation state transitions over eight games, and an AT lottery is held for each game. In addition, in this other example of the slot machine 400, the result of the AT lottery in each game in the chance zone presentation state is stored as 1 bit (win = 1, no win = 0), and all the results of the AT lottery are managed as win/lose information of a total of 8 bits (1 byte length).

このようなAT抽選の結果を管理する処理をOTM_ATKモジュールによって実行する。なお、OTM_ATKモジュールは、各遊技においてAT抽選に当選した場合にのみ、図91におけるステップS2400-11に示した実行フラグ設定処理において呼び出されて実行される。 The process of managing the results of such AT lotteries is executed by the OTM_ATK module. Note that the OTM_ATK module is called and executed in the execution flag setting process shown in step S2400-11 in FIG. 91 only when the AT lottery is won in each game.

メインCPU500aは、図230に示すように、チャンスゾーン演出状態の遊技数を取得するとともに(S1)、遊技数ビットテーブルのアドレスを取得する(S2)。なお、遊技数ビットテーブルには、詳しくは後述するように、チャンスゾーン演出状態における1遊技目から8遊技目にそれぞれ対応したビット情報が連続して配置されており、各ビット情報は、その遊技に対応したビット(1ビット情報)が1であり、その他のビットが0となっている1バイト長のデータとなっている。 As shown in FIG. 230, the main CPU 500a obtains the number of plays in the chance zone presentation state (S1) and obtains the address of the play count bit table (S2). In addition, in the play count bit table, bit information corresponding to the first play through the eighth play in the chance zone presentation state is consecutively arranged, as will be described in detail later, and each bit information is 1 byte long data in which the bit (1 bit information) corresponding to that play is 1 and the other bits are 0.

メインCPU500aは、遊技数ビットテーブルから、取得した遊技数に対応するビット情報を取得するとともに(S3)、AT抽選の結果が示される1バイト長の当否情報(1バイト情報)を取得する(S4)。そして、メインCPU500aは、取得したビット情報と当否情報との論理和を演算することにより、当否情報を更新(合成)し(S5)、更新した当否情報をセーブし(S6)。当該OTM_ATKモジュールを終了して1段上のルーチンに戻る(S7)。 The main CPU 500a obtains bit information corresponding to the obtained number of plays from the number of plays bit table (S3), and obtains 1-byte long win/loss information (1-byte information) indicating the result of the AT lottery (S4). The main CPU 500a then updates (combines) the win/loss information by calculating the logical sum of the obtained bit information and the win/loss information (S5), and saves the updated win/loss information (S6). The OTM_ATK module is terminated and the process returns to the routine one step above (S7).

図231は、OTM_ATKモジュールを実現するためのコマンドの一例を説明するための説明図である。図230で示したフローチャートは、例えば、図231に示したプログラムによって実現される。 Figure 231 is an explanatory diagram for explaining an example of a command for implementing the OTM_ATK module. The flowchart shown in Figure 230 is implemented, for example, by the program shown in Figure 231.

図231(a)の1行目の指標「OTM_ATK:」は、当該OTM_ATKモジュールの先頭アドレスを示す。そして、図231(a)の2行目のコマンド「LDQ A,(LOW _CZ_CNT)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_CZ_CNT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(遊技数)をAレジスタに読み出す。かかる2行目のコマンドが、図230のステップS1に対応する。 The index "OTM_ATK:" on the first line of FIG. 231(a) indicates the starting address of the OTM_ATK module. The command "LDQ A, (LOW _CZ_CNT)" on the second line of FIG. 231(a) sets the value of the Q register to the most significant byte of the address, sets the value of the least significant byte of the address "_CZ_CNT" to the most significant byte of the address, and reads the value stored at that address (number of plays) into the A register. This command on the second line corresponds to step S1 in FIG. 230.

そして、図231(a)の3行目のコマンド「LD HL,T_XXX_XXX」によって、図231(b)に示す、遊技数ビットテーブルの先頭アドレス「T_XXX_XXX」をHLレジスタに読み出す。かかる3行目のコマンドが、図230のステップS2に対応する。 Then, the command "LD HL, T_XXX_XXX" on the third line of FIG. 231(a) reads the top address of the number of plays bit table "T_XXX_XXX" shown in FIG. 231(b) into the HL register. This command on the third line corresponds to step S2 in FIG. 230.

図231(b)の1行目の指標「T_XXX_XXX:」は、テーブル「T_XXX_XXX」の先頭アドレスを示す。図231(b)の2行目の値「00000001B」は、チャンスゾーン演出状態における1遊技目に対応し、0ビットのみが1であり、他のビットが0である。同様に、図231(b)の3行目~9行目の値は、チャンスゾーン演出状態における2遊技目~8遊技目にそれぞれ対応し、その遊技に対応するビットが1であり、他のビットが0である。 The index "T_XXX_XXX:" on the first line of FIG. 231(b) indicates the top address of the table "T_XXX_XXX". The value "00000001B" on the second line of FIG. 231(b) corresponds to the first play in the chance zone presentation state, with only the 0 bit being 1 and the other bits being 0. Similarly, the values on the third to ninth lines of FIG. 231(b) correspond to the second to eighth plays, respectively, in the chance zone presentation state, with the bit corresponding to that play being 1 and the other bits being 0.

図231(a)の4行目のコマンド「RST CALADRS」によって、CALADRSモジュールが呼び出される。なお、CALADRSモジュールでは、HLレジスタの値にAレジスタの値(遊技数)が加算され、HLレジスタの値が更新されるとともに、更新されたHLレジスタに示されるアドレスに格納された値(遊技数に対応するビット情報)がAレジスタに読み出される。かかる4行目のコマンドが、図230のステップS3に対応する。 The CALADRS module is called by the command "RST CALADRS" on the fourth line of Figure 231 (a). In the CALADRS module, the value of the A register (number of plays) is added to the value of the HL register, the value of the HL register is updated, and the value stored at the address indicated by the updated HL register (bit information corresponding to the number of plays) is read into the A register. This command on the fourth line corresponds to step S3 in Figure 230.

図231(a)の5行目のコマンド「LDQ B,(LOW _ATW_BIT)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_ATW_BIT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(当否情報)をBレジスタに読み出す。かかる5行目のコマンドが、図230のステップS4に対応する。 The command "LDQ B, (LOW _ATW_BIT)" on the fifth line of Fig. 231(a) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "_ATW_BIT" to the lower byte of the address, and reads the value stored at that address (win/lose information) into the B register. This command on the fifth line corresponds to step S4 in Fig. 230.

図231(a)の6行目のコマンド「OR A,B」によって、Aレジスタの値(遊技数に対応するビット情報)と、Bレジスタの値(当否情報)との論理和を演算する。ここでは、当該遊技においてAT抽選に当選したときに、当否情報のうち、その遊技数に対応するビットが1となる。かかる6行目のコマンドが、図230のステップS5に対応する。 The command "OR A, B" on the sixth line of Figure 231(a) calculates the logical sum of the value of the A register (bit information corresponding to the number of plays) and the value of the B register (win/lose information). Here, when the AT lottery is won in the relevant game, the bit in the win/lose information corresponding to that number of plays becomes 1. This command on the sixth line corresponds to step S5 in Figure 230.

図231(a)の7行目のコマンド「LDQ (LOW _ATW_BIT),A」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_ATW_BIT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスにAレジスタの値(更新された当否情報)を格納する。かかる7行目のコマンドが、図230のステップS6に対応する。 The command "LDQ (LOW _ATW_BIT), A" on line 7 of Figure 231(a) sets the value of the Q register to the upper byte of the address, sets the value of the lower byte of the address "_ATW_BIT" to the lower byte of the address, and stores the value of the A register (updated win/lose information) at that address. This command on line 7 corresponds to step S6 in Figure 230.

そして、図231(a)の8行目のコマンド「RET」によって、当該OTM_ATKモジュールが終了して1段上のルーチンに戻る。かかる8行目のコマンドが、図230のステップS7に対応する。 Then, the command "RET" on line 8 of FIG. 231(a) causes the OTM_ATK module to terminate and return to the routine one level above. This command on line 8 corresponds to step S7 of FIG. 230.

ここで、図231(a)のコマンド群を図231(c)のように変更することができる。ここでは、図231(a)と実質的に等しい処理についてはその説明を省略し、図231(c)の異なる処理のみを説明する。 The command group in FIG. 231(a) can be changed to that in FIG. 231(c). Here, we will omit the explanation of the processing that is essentially the same as in FIG. 231(a), and only explain the different processing in FIG. 231(c).

図231(c)の3行目のコマンド「CPLBQ A,(LOW _ATW_BIT)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「_ATW_BIT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(当否情報)のうち、Aレジスタの値(遊技数)に対応するビットを反転する。したがって、ここでは、当否情報のうち、AT抽選に当選した遊技(遊技数)に対応するビットが反転されて1となる。 The command "CPLBQ A, (LOW _ATW_BIT)" on the third line of Figure 231 (c) sets the value of the Q register to the most significant byte of the address, sets the value of the least significant byte of the address "_ATW_BIT" to the most significant byte of the address, and inverts the bit of the value (win/lose information) stored at that address that corresponds to the value of the A register (number of plays). Therefore, here, the bit of the win/lose information that corresponds to the play (number of plays) that resulted in a win in the AT lottery is inverted to 1.

ここで、図231(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW _CZ_CNT)」2バイト+3行目のコマンド「LD HL,T_XXX_XXX」3バイト+4行目のコマンド「RST CALADRS」1バイト+5行目のコマンド「LDQ B,(LOW _ATW_BIT)」3バイト+6行目のコマンド「OR A,B」1バイト+7行目のコマンド「LDQ (LOW _ATW_BIT),A」2バイト+8行目のコマンド「RET」1バイト=13バイトとなり、総実行サイクルは、2行目3サイクル+3行目3サイクル+4行目4サイクル+5行目4サイクル+6行目2サイクル+7行目3サイクル+8行目3サイクル=22サイクルとなる。 The total command size of the command group shown in FIG. 231(a) is 2 bytes of the command "LDQ A, (LOW _CZ_CNT)" on the second line + 3 bytes of the command "LD HL, T_XXX_XXX" on the third line + 1 byte of the command "RST CALADRS" on the fourth line + 3 bytes of the command "LDQ B, (LOW _ATW_BIT)" on the fifth line + 1 byte of the command "OR A, B" on the sixth line + 2 bytes of the command "LDQ (LOW _ATW_BIT), A" on the seventh line + 1 byte of the command "RET" on the eighth line = 13 bytes, and the total execution cycles are 3 cycles on the second line + 3 cycles on the third line + 4 cycles on the fourth line + 4 cycles on the fifth line + 2 cycles on the sixth line + 3 cycles on the seventh line + 3 cycles on the eighth line = 22 cycles.

一方、図231(c)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW _CZ_CNT)」2バイト+3行目のコマンド「CPLBQ A,(LOW _ATW_BIT)」3バイト+4行目のコマンド「RET」1バイト=6バイトとなり、総実行サイクルは、2行目3サイクル+3行目6サイクル+4行目3サイクル=12サイクルとなる。 On the other hand, the total command size of the command group shown in FIG. 231(c) is 2 bytes of the command "LDQ A, (LOW _CZ_CNT)" on the second line + 3 bytes of the command "CPLBQ A, (LOW _ATW_BIT)" on the third line + 1 byte of the command "RET" on the fourth line = 6 bytes, and the total execution cycles are 3 cycles on the second line + 6 cycles on the third line + 3 cycles on the fourth line = 12 cycles.

したがって、図231(a)のコマンド群を図231(c)のコマンド群に置き換えることで、総コマンドサイズが7バイト削減され、総実行サイクルも少なくとも10サイクル削減される。かかる置き換えによって、コマンドの短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Therefore, by replacing the command group in FIG. 231(a) with the command group in FIG. 231(c), the total command size is reduced by 7 bytes, and the total execution cycles are also reduced by at least 10 cycles. This replacement shortens the commands and reduces the processing load, making it possible to secure the capacity of the control area for performing game control processing.

また、図231(a)と図231(c)とを比較して理解できるように、図231(a)において5行(3行目~7行目)を占有していたコマンド群を、図231(c)においては1行(3行目)で表すことができ、コマンド数自体の削減と、設計負荷の軽減を図ることが可能となる。 In addition, as can be seen by comparing Figures 231(a) and 231(c), the command group that occupies five lines (lines 3 to 7) in Figure 231(a) can be represented in one line (line 3) in Figure 231(c), making it possible to reduce the number of commands and lighten the design load.

また、図231(c)のコマンド群に置き換えることで、遊技数ビットテーブルが不要になるため、遊技数ビットテーブル分のデータ容量も削減することができる。 In addition, by replacing it with the command group in FIG. 231(c), the number of plays bit table becomes unnecessary, and the data volume for the number of plays bit table can also be reduced.

<LDSB>
図232は、KRS_JDGモジュールを実現するためのコマンドの一例を説明するための説明図である。
<LDSB>
FIG. 232 is an explanatory diagram illustrating an example of a command for implementing the KRS_JDG module.

ここで、遊技機100の別例としては、大役遊技における所定のラウンド遊技において、大入賞口内に設けられた確変領域(特定領域)に遊技球が進入した場合に、大役遊技後の遊技状態を高確率遊技状態に設定する。そして、所定の特別図柄が決定された大役遊技において、所定のラウンド遊技で、大入賞口に所定の遊技数が通過したときに、確変領域を開放し、確変領域に遊技球を進入可能としている。以下では、1回目のラウンド遊技において大入賞口に遊技球が3球入球した場合、および、5回目のラウンド遊技において大入賞口に遊技球が5球入球した場合に、確変領域が開放される例を挙げて説明する。 As another example of the gaming machine 100, when a game ball enters a probability variable area (specific area) provided in the large prize opening during a specified round of play in a large prize game, the game state after the large prize game is set to a high probability game state. Then, in a large prize game in which a specified special pattern is determined, when a specified number of plays pass through the large prize opening during a specified round of play, the probability variable area is opened, allowing the game ball to enter the probability variable area. Below, an example will be described in which the probability variable area is opened when three game balls enter the large prize opening during the first round of play, and when five game balls enter the large prize opening during the fifth round of play.

このような確変領域の開放を管理する処理をKRS_JDGモジュールによって実行する。なお、KRS_JDGモジュールは、図47に示した大入賞口開放制御処理において呼び出されて実行される。 The process of managing the opening of such a special probability area is executed by the KRS_JDG module. The KRS_JDG module is called and executed in the special prize opening control process shown in FIG. 47.

図232(a)の1行目の指標「KRS_JDG:」は、当該KRS_JDGモジュールの先頭アドレスを示す。そして、図232(a)の2行目のコマンド「LDQ A,(LOW R_ROU_CNT)」によって、Qレジスタの値をアドレスの上位1バイトとし、アドレス「R_ROU_CNT」の下位1バイトの値をアドレスの下位1バイトとし、そのアドレスに格納された値(特別電動役物連続作動回数、すなわち、ラウンド遊技数)をAレジスタに読み出す。 The index "KRS_JDG:" on the first line of FIG. 232(a) indicates the starting address of the KRS_JDG module. Then, the command "LDQ A, (LOW R_ROU_CNT)" on the second line of FIG. 232(a) sets the value of the Q register to the most significant byte of the address, sets the value of the least significant byte of the address "R_ROU_CNT" to the most significant byte of the address, and reads the value stored at that address (the number of consecutive operations of the special electric device, i.e., the number of rounds played) into the A register.

そして、図232(a)の3行目のコマンド「LD B,(HL)」によって、HLレジスタに格納された値が示すアドレスの値をBレジスタに読み出す。なお、HLレジスタには、予め、図232(b)に示す、確変領域判定テーブルのアドレス「D_KRS_JDG_2」が読み出されている。 Then, the command "LD B, (HL)" on the third line of Figure 232 (a) reads the value of the address indicated by the value stored in the HL register into the B register. Note that the address of the probability change area determination table "D_KRS_JDG_2" shown in Figure 232 (b) has already been read into the HL register.

図232(b)の1行目の指標「D_KRS_JDG_2:」は、テーブル「D_KRS_JDG_2」の先頭アドレスを示す。図232(b)の2行目の値「(@D_KRS_JDG_2-D_KRS_JDG2-1)/2」は、7行目の指標「@D_KRS_JDG_2:」のアドレスから1行目の指標「D_KRS_JDG_2:」のアドレスおよび1を減算した値を2で除算した値であり、判定回数(確変領域が開放されるラウンド遊技の回数)を示すものである。 The index "D_KRS_JDG_2:" in the first line of FIG. 232(b) indicates the top address of the table "D_KRS_JDG_2". The value "(@D_KRS_JDG_2-D_KRS_JDG2-1)/2" in the second line of FIG. 232(b) is the value obtained by subtracting the address of the index "D_KRS_JDG_2:" in the first line and 1 from the address of the index "@D_KRS_JDG_2:" in the seventh line, and dividing the result by 2, and indicates the number of judgments (the number of rounds of play that open the probability change area).

図232(b)の3行目の値「@KRS_TGT_ROU_01」は、確変領域を開放する1回目のラウンド遊技を示す値(対象ラウンド値、ここでは、1)であり、図232(b)の4行目の値「@KRS_JDG_01」は、確変領域を開放する1回目のラウンド遊技において大入賞口に何個の遊技球が入球したときに確変領域を開放するかを示す値(開放識別値、ここでは、3)である。同様に、図232(b)の5行目の値「@KRS_TGT_ROU_03」は、確変領域を開放する2回目のラウンド遊技を示す値(対象ラウンド値、ここでは、5)であり、図232(b)の6行目の値「@KRS_JDG_03」は、確変領域を開放する2回目のラウンド遊技において大入賞口に何個の遊技球が入球したときに確変領域を開放するかを示す値(開放識別値、ここでは、5)である。 The value "@KRS_TGT_ROU_01" on the third line of Figure 232(b) is a value indicating the first round of play that opens the special probability area (target round value, here, 1), and the value "@KRS_JDG_01" on the fourth line of Figure 232(b) is a value indicating how many game balls need to enter the large prize opening in the first round of play that opens the special probability area (opening identification value, here, 3). Similarly, the value "@KRS_TGT_ROU_03" on the fifth line of FIG. 232(b) is a value indicating the second round of play that opens the special probability area (target round value, here 5), and the value "@KRS_JDG_03" on the sixth line of FIG. 232(b) is a value indicating how many game balls must enter the large prize opening in the second round of play that opens the special probability area (opening identification value, here 5).

したがって、図232(a)の3行目のコマンド「LD B,(HL)」によって、判定回数がBレジスタに読み出されることになる。 Therefore, the command "LD B, (HL)" on the third line of Figure 232 (a) causes the number of judgments to be read into the B register.

図232(a)の4行目の指標「KRS_JDG_10:」は、当該指標「KRS_JDG_10」のアドレスを示す。図232(a)の5行目のコマンド「INC HL」によって、HLレジスタの値が1加算(インクリメント)される。その後、図232(a)の6行目のコマンド「CP A,(HL)」によって、Aレジスタの値と、HLレジスタの値によって示されるアドレスに格納された値(対象ラウンド値)とが比較され、Aレジスタの値がHLレジスタの値と同一であれば、ゼロフラグが立って1となり、HLレジスタの値と異なれば、ゼロフラグが立たずに0となる。 The index "KRS_JDG_10:" on the fourth line of Fig. 232(a) indicates the address of the index "KRS_JDG_10". The command "INC HL" on the fifth line of Fig. 232(a) increments the value of the HL register by 1. After that, the command "CP A, (HL)" on the sixth line of Fig. 232(a) compares the value of the A register with the value stored at the address indicated by the value of the HL register (target round value), and if the value of the A register is the same as the value of the HL register, the zero flag is set and the value is 1, and if it is different from the value of the HL register, the zero flag is not set and the value is 0.

続いて、図232(a)の7行目のコマンド「INC HL」によって、HLレジスタの値が再び1加算(インクリメント)される。その後、図232(a)の8行目のコマンド「LD C,(HL)」によって、HLレジスタで示されるアドレスの値(開放識別値)がCレジスタに読み出される。 Next, the command "INC HL" on line 7 of Fig. 232(a) increments the value of the HL register by 1 again. After that, the command "LD C, (HL)" on line 8 of Fig. 232(a) reads the value of the address indicated by the HL register (the release identification value) into the C register.

そして、図232(a)の9行目のコマンド「RET Z」によって、ゼロフラグが立っている場合、当該KRS_JDGモジュールを終了して1つ上のモジュールに戻る。 Then, the command "RET Z" on line 9 of Figure 232(a) will terminate the KRS_JDG module and return to the module above if the zero flag is set.

また、ゼロフラグが立っていない場合、図232(a)の10行目のコマンド「DJNZ KRS_JDG_10」によって、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0でなければ、アドレス「KRS_JDG_10」に移動し、デクリメントした結果が0であれば、図232(a)の11行目のコマンド「RET」によって、当該KRS_JDGモジュールを終了して1つ上のモジュールに戻る。 Also, if the zero flag is not set, the command "DJNZ KRS_JDG_10" on line 10 of Fig. 232(a) decrements the value of the B register (subtract "1"), and if the result of the decrement is not 0, it moves to address "KRS_JDG_10", and if the result of the decrement is 0, the command "RET" on line 11 of Fig. 232(a) terminates the KRS_JDG module and returns to the module above.

ここで、遊技機100においては、ラウンド遊技数は最大で10である。また、確変領域を開放するための大入賞口への入球数は、各ラウンド遊技の規定数が10であることから、2~5の間に設定されることになる。すなわち、対象ラウンド値は10以下の値であり、4ビットで表現可能である。したがって、対象ラウンド値を示す値「@KRS_TGT_ROU_01」および値「@KRS_TGT_ROU_03」は、1バイト長で構成されているが、実際には4ビットでよい。 Here, in the gaming machine 100, the number of rounds is a maximum of 10. Also, the number of balls that enter the large prize slot to open the special prize area is set between 2 and 5, since the specified number for each round is 10. In other words, the target round value is a value of 10 or less, and can be expressed in 4 bits. Therefore, although the value "@KRS_TGT_ROU_01" and the value "@KRS_TGT_ROU_03" indicating the target round value are 1 byte long, in reality 4 bits will suffice.

また、開放識別値は5以下の値であり、3ビットで表現可能である。したがって、開放識別値を示す値「@KRS_JDG_01」および値「@KRS_JDG_03」は、1バイト長で構成されているが、実際には3ビットでよい。 The open identification value is a value of 5 or less and can be expressed in 3 bits. Therefore, the value "@KRS_JDG_01" and the value "@KRS_JDG_03" indicating the open identification value are 1 byte long, but in reality they can be expressed in 3 bits.

そこで、以下では、4ビットで表現可能な対象ラウンド値、および、3ビットで表現可能な開放識別値の2つの値を、1バイト長の1つの値(データ)として扱う例について説明する。 Below, we will explain an example in which two values, the target round value, which can be expressed in 4 bits, and the open identification value, which can be expressed in 3 bits, are treated as one value (data) of 1 byte length.

図233は、KRS_JDGモジュールを実現するためのコマンドの別例を説明するための説明図である。なお、図232と実質的に等しい処理についてはその説明を省略し、図233の異なる処理のみを説明する。 Figure 233 is an explanatory diagram for explaining another example of a command for implementing the KRS_JDG module. Note that an explanation of the processing that is essentially the same as in Figure 232 will be omitted, and only the different processing in Figure 233 will be explained.

図233(a)の3行目のコマンド「LD B,(HL)」によって、HLレジスタに示されるアドレスの値をBレジスタに読み出す。なお、HLレジスタには、予め、図233(b)に示す、確変領域判定テーブルのアドレス「D_KRS_JDG_2」が読み出されている。 The command "LD B, (HL)" on the third line of Figure 233(a) reads the value of the address indicated in the HL register into the B register. Note that the address of the probability change area determination table "D_KRS_JDG_2" shown in Figure 233(b) has already been read into the HL register.

図233(b)の3行目の値「@KRS_TGT_ROU_01*8+@KRS_JDG_01」は、上位5ビットが、確変領域を開放する1回目のラウンド遊技を示す値(対象ラウンド値)であり、下位3ビットが、確変領域を開放する1回目のラウンド遊技において大入賞口に何個の遊技球が入球したときに確変領域を開放するかを示す値(開放識別値)である。同様に、図233(b)の4行目の値「@KRS_TGT_ROU_03*8+@KRS_JDG_03」は、上位5ビットが、確変領域を開放する2回目のラウンド遊技を示す値(対象ラウンド値)であり、下位3ビットが、確変領域を開放する2回目のラウンド遊技において大入賞口に何個の遊技球が入球したときに確変領域を開放するかを示す値(開放識別値)である。 The value "@KRS_TGT_ROU_01*8+@KRS_JDG_01" on the third line of FIG. 233(b) is a value (target round value) in which the top five bits indicate the first round of play that opens the special probability area, and the bottom three bits indicate a value (opening identification value) indicating how many game balls must enter the special probability area in the first round of play that opens the special probability area. Similarly, the value "@KRS_TGT_ROU_03*8+@KRS_JDG_03" on the fourth line of FIG. 233(b) is a value (target round value) in which the top five bits indicate the second round of play that opens the special probability area, and the bottom three bits indicate a value (opening identification value) indicating how many game balls must enter the special probability area in the second round of play that opens the special probability area.

図233(a)の6行目のコマンド「LDSB 2,DE,(HL)」によって、HLレジスタの値の下位3ビットがEレジスタに読み出され(他のビットは0にされる)、HLレジスタの値の上位5ビットが3ビット右にシフトされてDレジスタに読み出される(他のビットは0にされる)。すなわち、対象ラウンド値および開放識別値を分けて、対象ラウンド値がDレジスタに読み出され、開放識別値がEレジスタに読み出される。なお、コマンド「LDSB 2,DE,(HL)」における「2」は、0ビットから2ビット目までの3ビットがEレジスタに読み出されることを示す値であるとともに、それよりも上位のビット(5ビット)がシフトされてDレジスタに読み出されることを示す値である。 The command "LDSB 2, DE, (HL)" on line 6 of Figure 233(a) reads the lowest 3 bits of the value of the HL register into the E register (the other bits are set to 0), and the highest 5 bits of the value of the HL register are shifted 3 bits to the right and read into the D register (the other bits are set to 0). In other words, the target round value and the release identification value are separated, the target round value is read into the D register, and the release identification value is read into the E register. Note that the "2" in the command "LDSB 2, DE, (HL)" is a value indicating that the 3 bits from bit 0 to bit 2 are read into the E register, and also a value indicating that the higher-order bits (5 bits) are shifted and read into the D register.

図233(a)の7行目のコマンド「CP A,D」によって、Aレジスタの値と、Dレジスタの値(対象ラウンド値)とが比較され、Aレジスタの値がDレジスタの値と同一であれば、ゼロフラグが立って1となり、対象ラウンド値と異なれば、ゼロフラグが立たずに0となる。 The command "CP A, D" on line 7 of Figure 233(a) compares the value of the A register with the value of the D register (target round value), and if the value of the A register is the same as the value of the D register, the zero flag is set and the value is 1, and if the value is different from the target round value, the zero flag is not set and the value is 0.

ここで、図232(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_ROU_CNT)」2バイト+3行目のコマンド「LD B,(HL)」1バイト+5行目のコマンド「INC HL」1バイト+6行目のコマンド「CP A,(HL)」1バイト+7行目のコマンド「INC HL」1バイト+8行目のコマンド「LD C,(HL)」1バイト+9行目のコマンド「RET Z」1バイト+10行目のコマンド「DJNZ KRS_JDG_10」2バイト+11行目のコマンド「RET」1バイト=11バイトとなり、総実行サイクルは、2行目3サイクル+3行目2サイクル+5行目1サイクル+6行目2サイクル+7行目1サイクル+8行目1サイクル+9行目3(1)サイクル+10行目3(2)サイクル+11行目3(1)サイクル=19(14)サイクルとなる。また、図232(b)に示す確変領域判定テーブルは、5バイトとなる。なお、括弧内のサイクル数は、コマンドによって移動しなかった場合の実行サイクルを示している。 Here, the total command size of the command group shown in FIG. 232(a) is: 2 bytes of the command "LDQ A, (LOW R_ROU_CNT)" on the second line + 1 byte of the command "LD B, (HL)" on the third line + 1 byte of the command "INC HL" on the fifth line + 1 byte of the command "CP A, (HL)" on the sixth line + 1 byte of the command "INC HL" on the seventh line + 1 byte of the command "LD C, (HL)" on the eighth line + 1 byte of the command "RET Z" on the ninth line + 1 byte of the command "DJNZ" on the tenth line. 2 bytes of "KRS_JDG_10" + 1 byte of the command "RET" on line 11 = 11 bytes, and the total execution cycles are 3 cycles on line 2 + 2 cycles on line 3 + 1 cycle on line 5 + 2 cycles on line 6 + 1 cycle on line 7 + 1 cycle on line 8 + 3(1) cycles on line 9 + 3(2) cycles on line 10 + 3(1) cycles on line 11 = 19 (14) cycles. Also, the probability change area determination table shown in Figure 232 (b) is 5 bytes. Note that the number of cycles in parentheses indicates the execution cycles when no movement is made by a command.

一方、図233(a)に示したコマンド群の総コマンドサイズは、2行目のコマンド「LDQ A,(LOW R_ROU_CNT)」2バイト+3行目のコマンド「LD B,(HL)」1バイト+5行目のコマンド「INC HL」1バイト+6行目のコマンド「LDSB 2,DE,(HL)」2バイト+7行目のコマンド「CP A,D」1バイト+8行目のコマンド「RET Z」1バイト+9行目のコマンド「DJNZ KRS_JDG_10」2バイト+10行目のコマンド「RET」1バイト=11バイトとなり、総実行サイクルは、2行目3サイクル+3行目2サイクル+5行目1サイクル+6行目3サイクル+7行目1サイクル+8行目3(1)サイクル+9行目3(2)サイクル+10行目3(1)サイクル=19(14)サイクルとなる。また、図233(b)に示す確変領域判定テーブルは、3バイトとなる。なお、括弧内のサイクル数は、コマンドによって移動しなかった場合の実行サイクルを示している。 On the other hand, the total command size of the command group shown in FIG. 233(a) is 2 bytes of the command "LDQ A, (LOW R_ROU_CNT)" on line 2 + 1 byte of the command "LD B, (HL)" on line 3 + 1 byte of the command "INC HL" on line 5 + 2 bytes of the command "LDSB 2, DE, (HL)" on line 6 + 1 byte of the command "CP A, D" on line 7 + 1 byte of the command "RET Z" on line 8 + 2 bytes of the command "DJNZ KRS_JDG_10" on line 9 + 1 byte of the command "RET" on line 10 = 11 bytes, and the total execution cycles are 3 cycles on line 2 + 2 cycles on line 3 + 1 cycle on line 5 + 3 cycles on line 6 + 1 cycle on line 7 + 3(1) cycles on line 8 + 3(2) cycles on line 9 + 3(1) cycles on line 10 = 19 (14) cycles. Also, the variable area determination table shown in FIG. 233(b) is 3 bytes. Note that the number of cycles in parentheses indicates the execution cycle when no movement is made by command.

したがって、図232(a)のコマンド群および図232(b)の確変領域判定テーブルを、図233(a)のコマンド群および図233(b)の確変領域判定テーブルに置き換えることで、総サイズが2バイト削減される。かかる置き換えによって、コマンドの短縮化および処理負荷の軽減を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Therefore, by replacing the command group in FIG. 232(a) and the probability change area determination table in FIG. 232(b) with the command group in FIG. 233(a) and the probability change area determination table in FIG. 233(b), the total size is reduced by 2 bytes. This replacement shortens the commands and reduces the processing load, making it possible to secure the capacity of the control area for performing game control processing.

なお、コマンド「LDSB」は、合計で8バイト以下の2つの値(情報)を、1バイト長の1つのデータとして扱う際に使用可能であり、上記の例以外であっても適用することができる。 The command "LDSB" can be used when two values (information) totaling 8 bytes or less are treated as one piece of data 1 byte long, and can be applied to cases other than the above example.

<レジスタバンクおよびレジスタ群の管理>
図101を用いて説明したように、CPUコア700のレジスタユニット716には、排他的に切り換えて利用可能な2つのレジスタバンク(第1レジスタバンク726および第2レジスタバンク728)が設けられる。また、第1レジスタバンク726および第2レジスタバンク728それぞれには、排他的に切り換えてアクセス可能な2つのレジスタ群(メインレジスタ群726a、728aおよびサブレジスタ群726b、728b)が設けられ、それぞれ、8ビットのレジスタ(Q、A、F、B、C、D、E、H、L)と、16ビットのレジスタ(IX、IY)とを含む。したがって、このような複数のレジスタが共通するレジスタ群は、2つのレジスタバンク(第1レジスタバンク726、第2レジスタバンク728)と、2つのレジスタ群(メインレジスタ群726a、728a、サブレジスタ群726b、728b)との掛け合わせで4つの領域に存在することとなる。
<Management of register banks and register groups>
As described with reference to FIG. 101, the register unit 716 of the CPU core 700 is provided with two register banks (a first register bank 726 and a second register bank 728) that can be exclusively switched and used. In addition, each of the first register bank 726 and the second register bank 728 is provided with two register groups (main register groups 726a, 728a and sub-register groups 726b, 728b) that can be exclusively switched and accessed, each of which includes 8-bit registers (Q, A, F, B, C, D, E, H, L) and 16-bit registers (IX, IY). Therefore, the register groups in which such a plurality of registers are common are present in four areas by combining the two register banks (the first register bank 726 and the second register bank 728) with the two register groups (the main register groups 726a, 728a and the sub-register groups 726b, 728b).

このようなレジスタ群は、それぞれレジスタバンク間、レジスタ群間で排他的に利用されるとともに、独立して情報を記憶できるので、他の領域のレジスタの更新に影響を受けることがない。換言すれば、メインCPU500aは、現在対象としているレジスタバンクおよびレジスタ群のレジスタの内容は更新できるが、他の対象としていないレジスタバンクおよびレジスタ群にはアクセスすることができない。 Such register groups are used exclusively between register banks and register groups, and can store information independently, so they are not affected by updates to registers in other areas. In other words, the main CPU 500a can update the contents of the registers in the currently targeted register bank and register group, but cannot access other register banks and register groups that are not the target.

このように、レジスタ群が、レジスタバンク間およびレジスタ群間で独立していることを利用し、それぞれのレジスタ群を、その種別(目的、機能、契機等)により区分けすることが可能な複数のプログラムそれぞれに対応させることを検討する。例えば、本実施形態のメモリ空間では、図102のメモリマップのように、メインROM500bおよびメインRAM500cにおいて使用領域と別領域とが割り当てられている。上述したように、メインROM500bの使用領域には、遊技の進行を制御する遊技制御処理を実行するためのプログラムやデータが格納され、メインROM500bの別領域には、遊技の進行に影響を及ぼさない遊技制御外処理を遂行するプログラムの命令コードおよびプログラムデータが格納されている。このように使用領域と別領域とは、目的とする処理の内容が異なるため、それぞれ異なるレジスタ群を対応させることが好ましい。 In this way, by taking advantage of the fact that the register groups are independent between register banks and between register groups, it is considered to make each register group correspond to a plurality of programs that can be classified by type (purpose, function, trigger, etc.). For example, in the memory space of this embodiment, as shown in the memory map of FIG. 102, a used area and a separate area are allocated in the main ROM 500b and the main RAM 500c. As described above, the used area of the main ROM 500b stores programs and data for executing game control processing that controls the progress of the game, and the separate area of the main ROM 500b stores instruction codes and program data of programs that perform non-game control processing that does not affect the progress of the game. In this way, since the contents of the processing to be performed differ between the used area and the separate area, it is preferable to make each correspond to a different register group.

そこで、本実施形態では、使用領域における遊技制御処理の実行に用いるレジスタ群として第1レジスタバンク726を対応させ、別領域における遊技制御外処理の実行に用いるレジスタ群として第2レジスタバンク728を対応させる。換言すれば、第1レジスタバンク726は、使用領域における遊技制御処理の実行に用いるレジスタ群として使用し、第2レジスタバンク728は、別領域における遊技制御外処理の実行に用いるレジスタ群として使用する。そして、メインCPU500aは、メインROM500bの0000h~1FFFhに格納されているプログラムを参照し、第1レジスタバンク726のレジスタ群を更新して遊技制御処理を実行するとともに、メインROM500bの2000h~3FFFhに格納されているプログラムを参照し、レジスタバンクを切り換え、第2レジスタバンク728のレジスタ群を更新して遊技制御外処理を実行する。かかる構成により、メモリおよびレジスタの両方において、使用領域と別領域との独立性および排他性を担保することができる。 Therefore, in this embodiment, the first register bank 726 corresponds to the register group used to execute the game control process in the use area, and the second register bank 728 corresponds to the register group used to execute the game control non-processing in the other area. In other words, the first register bank 726 is used as the register group used to execute the game control process in the use area, and the second register bank 728 is used as the register group used to execute the game control non-processing in the other area. The main CPU 500a refers to the program stored in 0000h to 1FFFh of the main ROM 500b, updates the register group of the first register bank 726 to execute the game control process, and refers to the program stored in 2000h to 3FFFh of the main ROM 500b, switches the register bank, and updates the register group of the second register bank 728 to execute the game control non-processing. With this configuration, the independence and exclusivity between the use area and the other area can be guaranteed in both the memory and the register.

また、本実施形態では、遊技制御処理において実行されるプログラムを2つに区分けする。ここでは、例えば、メイン処理とタイマ割込み処理とに区分する。メイン処理(第1処理)は、例えば、図22~図25(遊技機100)、図82~図97(スロットマシン400)に示したように、メインループを含む、遊技者の操作とその結果に従って順次実行される処理であり、タイマ割込み処理(第2処理)は、例えば、図26~図59(遊技機100)、図98(スロットマシン400)に示したように、メイン処理の実行中に生じる、所定時間(例えば、4ms、1.49ms)毎のタイマ割込に応じ、メイン処理を一旦中断して実行される処理である。なお、ここでは、第1処理として、メイン処理を挙げて説明したが、かかる場合に限らず、遊技を進行するための任意の処理を適用することができる。また、ここでは、第2処理として、タイマ割込み処理を挙げて説明したが、かかる場合に限らず、遊技を進行する上での所定の条件(計時契機、タイミング契機、操作契機、処理の実行契機等)の成立に基づいて発生する所定の割込みによって実行される処理であれば、任意の処理を適用することができる。 In this embodiment, the program executed in the game control process is divided into two. Here, for example, it is divided into main processing and timer interrupt processing. The main processing (first processing) is a processing that is executed sequentially according to the player's operation and the result thereof, including the main loop, as shown in, for example, Figures 22 to 25 (gaming machine 100) and Figures 82 to 97 (slot machine 400), and the timer interrupt processing (second processing) is a processing that is executed by temporarily interrupting the main processing in response to a timer interrupt every predetermined time (for example, 4 ms, 1.49 ms) that occurs during the execution of the main processing, as shown in, for example, Figures 26 to 59 (gaming machine 100) and Figure 98 (slot machine 400). Note that, here, the main processing is described as the first processing, but it is not limited to such a case, and any processing for progressing the game can be applied. Also, although timer interrupt processing has been described as the second process here, this is not limited to this case, and any process can be applied as long as it is executed by a predetermined interrupt that occurs based on the establishment of a predetermined condition in the progress of the game (a timing trigger, a timing trigger, an operation trigger, a trigger for executing a process, etc.).

そして、本実施形態においては、メイン処理およびタイマ割込み処理のいずれか一方に、第1レジスタバンク726の2つのレジスタ群726a、726bの一方を対応させ、メイン処理およびタイマ割込み処理の他方に、第1レジスタバンク726の2つのレジスタ群726a、726bの他方を対応させる。換言すれば、第1レジスタバンク726の2つのレジスタ群726a、726bの一方は、メイン処理およびタイマ割込み処理のいずれか一方の処理の実行に用いるレジスタ群として使用し、第1レジスタバンク726の2つのレジスタ群726a、726bの他方は、メイン処理およびタイマ割込み処理の他方の処理の実行に用いるレジスタ群として使用する。以下、第1の実施形態で、メイン処理にメインレジスタ群726aを対応させ、タイマ割込み処理にサブレジスタ群726bを対応させた例を説明し、第2の実施形態で、メイン処理にサブレジスタ群726bを対応させ、タイマ割込み処理にメインレジスタ群726aを対応させた例を説明する。 In this embodiment, one of the two register groups 726a and 726b of the first register bank 726 corresponds to either the main processing or the timer interrupt processing, and the other of the two register groups 726a and 726b of the first register bank 726 corresponds to the other of the main processing and the timer interrupt processing. In other words, one of the two register groups 726a and 726b of the first register bank 726 is used as a register group used to execute either the main processing or the timer interrupt processing, and the other of the two register groups 726a and 726b of the first register bank 726 is used as a register group used to execute the other of the main processing and the timer interrupt processing. In the following, in the first embodiment, an example in which the main register group 726a corresponds to the main processing and the sub-register group 726b corresponds to the timer interrupt processing will be described, and in the second embodiment, an example in which the sub-register group 726b corresponds to the main processing and the main register group 726a corresponds to the timer interrupt processing will be described.

(第1の実施形態)
ここでは、メイン処理にメインレジスタ群726aを対応させ、タイマ割込み処理にサブレジスタ群726bを対応させた例を説明する。したがって、メインCPU500aは、メインレジスタ群726aを参照してメイン処理を順次実行し、タイマ割込みが生じた場合に、メイン処理を中断し、一旦、メインレジスタ群726aからサブレジスタ群726bに切り換えてタイマ割込み処理を実行し、タイマ割込み処理が終了すると、サブレジスタ群726bからメインレジスタ群726aに切り換えて、メイン処理を再開する。
First Embodiment
Here, an example will be described in which the main register group 726a corresponds to the main processing, and the sub-register group 726b corresponds to the timer interrupt processing. Therefore, the main CPU 500a sequentially executes the main processing by referring to the main register group 726a, and when a timer interrupt occurs, it suspends the main processing, switches from the main register group 726a to the sub-register group 726b to execute the timer interrupt processing, and when the timer interrupt processing ends, switches from the sub-register group 726b to the main register group 726a to resume the main processing.

ところで、上述したように、本実施形態ではQレジスタを用いている。Qレジスタに記述された値は、任意のコマンドにおいてアドレスの一部として参照される。かかるQレジスタを用いることで、Qレジスタを参照するコマンドを記述でき、コマンドサイズやサイクル数を削減することが可能となる。 As mentioned above, this embodiment uses the Q register. The value written in the Q register is referenced as part of the address in any command. By using this Q register, it is possible to write commands that reference the Q register, making it possible to reduce the command size and number of cycles.

例えば、メモリ空間からデータを読み出すロード命令「LD」に関し、コマンド「LD A,(mn)」をプログラムに記述すると、16ビットのアドレスmnに格納された値をAレジスタに読み出すことができる。かかるコマンドは、コマンドサイズが3バイトでサイクル数が4サイクルとなる。これに対し、Qレジスタを参照するコマンド「LDQ A,(n)」をプログラムに記述すると、Qレジスタの値をアドレスの上位1バイトとし、アドレスnをアドレスの下位1バイトとし、16ビットのアドレスとして取り扱うように、そのアドレスに格納された値をAレジスタに読み出すことができる。かかるコマンドは、コマンドサイズが2バイトでサイクル数が3サイクルとなる。したがって、コマンドサイズおよびサイクル数のいずれも削減することが可能となる。 For example, regarding the load instruction "LD" that reads data from memory space, if the command "LD A, (mn)" is written into the program, the value stored in the 16-bit address mn can be read into the A register. This command has a command size of 3 bytes and a cycle count of 4 cycles. In contrast, if the command "LDQ A, (n)" that references the Q register is written into the program, the value stored in that address can be read into the A register with the value of the Q register as the upper byte of the address and address n as the lower byte of the address, and treated as a 16-bit address. This command has a command size of 2 bytes and a cycle count of 3 cycles. Therefore, it is possible to reduce both the command size and the cycle count.

かかるQレジスタは、上述したように、レジスタ群毎に管理されている。すなわち、メインレジスタ群(第1のレジスタ群)726aのQレジスタ(第1レジスタ)と、サブレジスタ群(第2のレジスタ群)726bのQ’レジスタ(第2レジスタ)が存在し、互いに独立して値を保持する。 As described above, the Q register is managed for each register group. That is, there is a Q register (first register) in the main register group (first register group) 726a and a Q' register (second register) in the sub-register group (second register group) 726b, and they hold values independently of each other.

また、当該レジスタユニット716を含むメインCPU500aの電源投入時においても、メインレジスタ群726aのQレジスタと、サブレジスタ群726bのQ’レジスタは、互いに独立して初期値が設定される。例えば、電源投入時において、メインレジスタ群726aのQレジスタは、メインRAM500cの記憶領域のアドレスにおける複数の上位バイトの値(例えば、F0h~F3)のうちの、1の上位バイトの値(例えばF0h)と同じ「F0h」(第1の値)に設定され、サブレジスタ群726bのQ’レジスタは、メインRAM500cの記憶領域のアドレスにおける複数の上位バイトの値(例えば、F0h~F3)のうちの、1の上位バイトの値(例えばF1h)と同じ「F1h」に設定される。これは、メインレジスタ群726aを利用する処理と、サブレジスタ群726bを利用する処理とで、互いに参照するメモリ領域を区分けすることを想定したものである。 Also, when the main CPU 500a including the register unit 716 is powered on, the Q register of the main register group 726a and the Q' register of the sub-register group 726b are set to initial values independently of each other. For example, when the power is turned on, the Q register of the main register group 726a is set to "F0h" (first value), which is the same as the value of the upper byte of 1 (e.g., F0h) among the values of multiple upper bytes (e.g., F0h to F3) in the address of the storage area of the main RAM 500c, and the Q' register of the sub-register group 726b is set to "F1h", which is the same as the value of the upper byte of 1 (e.g., F1h) among the values of multiple upper bytes (e.g., F0h to F3) in the address of the storage area of the main RAM 500c. This is based on the assumption that the memory areas referenced by the process using the main register group 726a and the process using the sub-register group 726b are separated.

ただし、本実施形態では、メインレジスタ群726aを利用するメイン処理と、サブレジスタ群726bを利用するタイマ割込み処理とは、同一のメモリ領域に対応付けられた変数にアクセスする。したがって、アドレスの上位バイトとして参照されるメインレジスタ群726aのQレジスタおよびサブレジスタ群726bのQ’レジスタのいずれも同じ値(例えば、F0h)を保持させた方が、アドレスを調整するためのコマンドが不要な分、コマンドサイズを小さくできる。 However, in this embodiment, the main process using the main register group 726a and the timer interrupt process using the sub-register group 726b access variables associated with the same memory area. Therefore, if the Q register of the main register group 726a and the Q' register of the sub-register group 726b, which are referenced as the upper byte of the address, both hold the same value (e.g., F0h), the command size can be reduced by not requiring a command to adjust the address.

そこで、本実施形態では、メインレジスタ群726aのQレジスタおよびサブレジスタ群726bのQ’レジスタのいずれも同じ値(ここではF0h)に設定することとする。なお、メインレジスタ群726aのQレジスタは、初期値がF0h(第1の値)なので、さらに別の値を設定する必要がない。したがって、ここでは、サブレジスタ群726bのQ’レジスタのみF1hをF0h(第2の値)に書き替える。なお、メインCPU500aは、Q’レジスタを参照するコマンドが用いられる前に、Q’レジスタに値を設定する必要がある。そこで、例えば、メイン処理の初期化処理(例えば、図82のCPU初期化処理)において、Q’レジスタを初期化することが考えられる。 Therefore, in this embodiment, both the Q register of the main register group 726a and the Q' register of the sub-register group 726b are set to the same value (here, F0h). Note that since the initial value of the Q register of the main register group 726a is F0h (first value), there is no need to set another value. Therefore, here, only the Q' register of the sub-register group 726b is rewritten from F1h to F0h (second value). Note that the main CPU 500a needs to set a value in the Q' register before a command that references the Q' register is used. Therefore, for example, it is possible to initialize the Q' register during the initialization process of the main process (for example, the CPU initialization process in FIG. 82).

図234は、Q’レジスタに値を設定するコマンドの一例を示した図である。ここで、メインCPU500aは、メイン処理の初期化処理において、Q’レジスタにF0hを設定する。ただし、上述したように、メインCPU500aは、現在対象としているレジスタ群であるメインレジスタ群726aのQレジスタの内容は更新できるが、他のレジスタ群であるサブレジスタ群726bのQ’レジスタにはアクセスすることができない。そこで、図234のように、1行目のコマンド「EX ALL」によって、メインレジスタ群726aにおける8ビットのレジスタ(Q、A、F、B、C、D、E、H、L)および16ビットのレジスタ(IX、IY)から、サブレジスタ群726bにおける8ビットのレジスタ(Q’、A’、F’、B’、C’、D’、E’、H’、L’)および16ビットのレジスタ(IX’、IY’)に切り換える。そして、2行目のコマンド「LD Q,0F0H」によって、Q’レジスタにF0hを設定し、3行目のコマンド「EX ALL」によって、サブレジスタ群726bからメインレジスタ群726aに切り換える。 Figure 234 shows an example of a command to set a value in the Q' register. Here, the main CPU 500a sets F0h in the Q' register during the initialization process of the main process. However, as described above, the main CPU 500a can update the contents of the Q register in the main register group 726a, which is the currently targeted register group, but cannot access the Q' register in the sub-register group 726b, which is another register group. Therefore, as shown in Figure 234, the command "EX ALL" on the first line switches from the 8-bit registers (Q, A, F, B, C, D, E, H, L) and 16-bit registers (IX, IY) in the main register group 726a to the 8-bit registers (Q', A', F', B', C', D', E', H', L') and 16-bit registers (IX', IY') in the sub-register group 726b. Then, the command "LD Q,0F0H" on the second line sets F0h to the Q' register, and the command "EX ALL" on the third line switches from the sub-register group 726b to the main register group 726a.

図234に示したコマンド例の総コマンドサイズは、1行目のコマンド「EX ALL」2バイト+2行目のコマンド「LD Q,0F0H」1バイト+3行目のコマンド「EX ALL」2バイト=5バイトとなり、総実行サイクルは、1行目2サイクル+2行目1サイクル+3行目2サイクル=5サイクルとなる。 The total command size of the example command shown in Figure 234 is 2 bytes of the command "EX ALL" on the first line + 1 byte of the command "LD Q,0F0H" on the second line + 2 bytes of the command "EX ALL" on the third line = 5 bytes, and the total execution cycles are 2 cycles on the first line + 1 cycle on the second line + 2 cycles on the third line = 5 cycles.

なお、ここでは、メインレジスタ群726aのQレジスタとサブレジスタ群726bのQ’レジスタとの切り換えに、コマンド「EX ALL」を用いる例を挙げて説明したが、かかる場合に限らず、Qレジスタ同士を切り換えれば足り、例えば、コマンド「EX Q,Q’」を用いてもよい。なお、コマンド「EX Q,Q’」のコマンドサイズは2バイトで、サイクルは2サイクルなので、コマンド「EX ALL」と置換したとしても総コマンドサイズおよび総実行サイクルは変わらない。 Note that, here, an example has been described in which the command "EX ALL" is used to switch between the Q register of the main register group 726a and the Q' register of the sub-register group 726b, but this is not the only case, and it is sufficient to switch between Q registers; for example, the command "EX Q, Q'" may be used. Note that the command size of the command "EX Q, Q'" is 2 bytes and the cycle is 2 cycles, so even if it is replaced with the command "EX ALL", the total command size and total execution cycles do not change.

このようなQ’レジスタを参照するコマンド種別は、上記で例示したコマンド「LDQ」のみならず、多数あり、また、プログラムの中で繰り返し記述される。したがって、Q’レジスタを参照するコマンドを利用する度にコマンドサイズおよびサイクル数の削減効果が得られることとなる。このようなQ’レジスタを参照するコマンドの利用頻度の高さに伴い、Qレジスタの参照回数も多くなる。したがって、Q’レジスタの値は確実に設定されるべきである。そこで、Q’レジスタの設定を、メイン処理の初期化処理で1度のみ行うのに代えて、または、加えて、メイン処理のループ処理を通じて繰り返し行うことも考えられる。例えば、図234のコマンド群を図88~図97(スロットマシン400)のいずれかで行う。こうすることで、メイン処理のループ処理が実行される度にQ’レジスタにF0hを設定することができるので、仮に、Q’レジスタが初期値F1hになってしまうことがあったとしても、Q’レジスタの値を確実にF0hに設定することができ、Q’レジスタの値を安定的に維持することが可能となる。 There are many types of commands that refer to the Q' register, including the command "LDQ" shown above, and they are written repeatedly in a program. Therefore, the command size and the number of cycles can be reduced each time a command that refers to the Q' register is used. The frequency with which commands that refer to the Q' register are used increases, and the number of times the Q register is referenced. Therefore, the value of the Q' register should be set reliably. Therefore, instead of or in addition to setting the Q' register only once in the initialization process of the main process, it is also possible to set the Q' register repeatedly through the loop process of the main process. For example, the group of commands in FIG. 234 is set in any of FIG. 88 to FIG. 97 (slot machine 400). In this way, the Q' register can be set to F0h each time the loop process of the main process is executed, so that even if the Q' register becomes the initial value F1h, the value of the Q' register can be set to F0h reliably, and the value of the Q' register can be stably maintained.

ただし、Q’レジスタはタイマ割込み処理で利用するので、タイマ割込みを許可するまでにはQ’レジスタにF0hを設定する。 However, since the Q' register is used for timer interrupt processing, set F0h in the Q' register before enabling the timer interrupt.

また、Q’レジスタの設定を、メイン処理の初期化処理で1度のみ行う、または、メイン処理のループ処理で繰り返し行うのに代えて、または、加えて、タイマ割込み処理を通じて繰り返し行うことも考えられる。こうすることで、タイマ割込みが生じる度に、Q’レジスタにF0hを設定することができるので、仮に、Q’レジスタが初期値F1hになってしまうことがあったとしても、Q’レジスタの値を確実にF0hに設定することができ、Q’レジスタの値を安定的に維持することが可能となる。以下、タイマ割込み処理を通じてQ’レジスタの設定を繰り返し行う例を詳述する。 In addition to or instead of setting the Q' register once in the initialization process of the main process, or repeatedly in the loop process of the main process, it is also possible to repeatedly set the Q' register through timer interrupt processing. In this way, the Q' register can be set to F0h every time a timer interrupt occurs, so even if the Q' register is reset to its initial value F1h, the value of the Q' register can be reliably set to F0h, making it possible to stably maintain the value of the Q' register. Below, an example of repeatedly setting the Q' register through timer interrupt processing is described in detail.

図235は、Q’レジスタに値を設定するコマンドの一例を示した図である。ここでは、まず、Q’レジスタの設定に言及せず、図235(a)を用いて、通常のタイマ割込み処理を説明する。なお、タイマ割込み処理が発生するまで(メイン処理において)、メインCPU500aは、メインレジスタ群726aを対象としている。図235(a)の1行目の指標「TMR_IPT:」は、当該タイマ割込み処理の先頭アドレスを示す。2行目のコマンド「EX ALL」によって、メインレジスタ群726aにおける8ビットのレジスタ(Q、A、F、B、C、D、E、H、L)および16ビットのレジスタ(IX、IY)から、サブレジスタ群726bにおける8ビットのレジスタ(Q’、A’、F’、B’、C’、D’、E’、H’、L’)および16ビットのレジスタ(IX’、IY’)に切り換える。こうして、対象がサブレジスタ群726bとなる。そして、タイマ割込み処理で必要な処理を実行した後、5行目のコマンド「EX ALL」によって、サブレジスタ群726bからメインレジスタ群726aに切り換える。6行目のコマンド「EI」によって、割込が許可される。なお、ここでは、サブルーチンからメイン処理に戻る前にコマンド「EI」を行っても適切に割込が許可される。そして、7行目のコマンド「RETI」によって、メイン処理に戻る。 Figure 235 shows an example of a command for setting a value in the Q' register. Here, we will first explain normal timer interrupt processing using Figure 235 (a) without mentioning the setting of the Q' register. Note that until the timer interrupt processing occurs (in the main processing), the main CPU 500a targets the main register group 726a. The index "TMR_IPT:" on the first line of Figure 235 (a) indicates the start address of the timer interrupt processing. The command "EX ALL" on the second line switches from the 8-bit registers (Q, A, F, B, C, D, E, H, L) and 16-bit registers (IX, IY) in the main register group 726a to the 8-bit registers (Q', A', F', B', C', D', E', H', L') and 16-bit registers (IX', IY') in the sub-register group 726b. Thus, the target becomes the sub-register group 726b. Then, after performing the necessary processing in the timer interrupt processing, the command "EX ALL" on line 5 switches from the sub-register group 726b to the main register group 726a. The command "EI" on line 6 allows interrupts. Note that here, even if the command "EI" is executed before returning from the subroutine to the main processing, interrupts are properly allowed. Then, the command "RETI" on line 7 returns to the main processing.

図235(a)に示したコマンドの総コマンドサイズは、2行目のコマンド「EX ALL」2バイト+5行目のコマンド「EX ALL」2バイト+6行目のコマンド「EI」1バイト+7行目のコマンド「RETI」2バイト=7バイトとなり、総実行サイクルは、2行目2サイクル+5行目2サイクル+6行目1サイクル+7行目4サイクル=9サイクルとなる。 The total command size of the command shown in FIG. 235(a) is 2 bytes of the command "EX ALL" on line 2 + 2 bytes of the command "EX ALL" on line 5 + 1 byte of the command "EI" on line 6 + 2 bytes of the command "RETI" on line 7 = 7 bytes, and the total execution cycles are 2 cycles on line 2 + 2 cycles on line 5 + 1 cycle on line 6 + 4 cycles on line 7 = 9 cycles.

ここで、図235(a)のタイマ割込み処理のいずれかのタイミングに、Q’レジスタを設定するコマンドを記述する。タイマ割込み処理でQ’レジスタの設定を行う場合、図235(b)のように、コマンド「EX ALL」の後に、コマンド「LD Q,0F0H」のみを記述すればよい。なお、タイマ割込み処理の場合、処理の最後(5行目)で、再度、コマンド「EX ALL」が実行され、メインレジスタ群726aに切り換わる。 Now, write a command to set the Q' register at any timing in the timer interrupt processing of FIG. 235(a). When setting the Q' register in timer interrupt processing, as shown in FIG. 235(b), it is sufficient to write only the command "LD Q,0F0H" after the command "EX ALL". Note that in the case of timer interrupt processing, the command "EX ALL" is executed again at the end of the processing (line 5), and the main register group 726a is switched to.

なお、コマンド「LD Q,0F0H」の位置は、タイマ割込み処理内においてQ’レジスタを参照するコマンドより前でなければならない。したがって、図235(b)のように、2行目のコマンド「EX ALL」の直後とするとよい。なお、コマンド「EX ALL」の後に、Q’レジスタを参照するコマンド以外のコマンドを記述し、コマンド「LD Q,0F0H」を記述した後に、Q’レジスタを参照するコマンドを記述することでも実現できる。 The position of the command "LD Q, 0F0H" must precede the command that references the Q' register within the timer interrupt process. Therefore, as shown in Figure 235 (b), it is recommended to place it immediately after the command "EX ALL" on the second line. This can also be achieved by writing a command other than the command that references the Q' register after the command "EX ALL", and then writing the command that references the Q' register after the command "LD Q, 0F0H".

図235(b)に示したコマンドの総コマンドサイズは、2行目のコマンド「EX ALL」2バイト+3行目のコマンド「LD Q,0F0H」1バイト+5行目のコマンド「EX ALL」2バイト+6行目のコマンド「EI」1バイト+7行目のコマンド「RETI」2バイト=8バイトとなり、総実行サイクルは、2行目2サイクル+3行目1サイクル+5行目2サイクル+6行目1サイクル+7行目4サイクル=10サイクルとなる。図235(a)と図235(b)とを比較して理解できるように、Q’レジスタの設定を追加しても、総コマンドサイズ=1バイト、総実行サイクル=1サイクルの増加に収まる。 The total command size of the command shown in Fig. 235(b) is 2 bytes of the command "EX ALL" on line 2 + 1 byte of the command "LD Q,0F0H" on line 3 + 2 bytes of the command "EX ALL" on line 5 + 1 byte of the command "EI" on line 6 + 2 bytes of the command "RETI" on line 7 = 8 bytes, and the total execution cycles are 2 cycles on line 2 + 1 cycle on line 3 + 2 cycles on line 5 + 1 cycle on line 6 + 4 cycles on line 7 = 10 cycles. As can be seen by comparing Fig. 235(a) and Fig. 235(b), even if the setting of the Q' register is added, the increase in total command size is limited to 1 byte and total execution cycles is limited to 1 cycle.

図234を用いて説明したように、メイン処理の初期化処理でQ’レジスタの設定を行うと、総コマンドサイズ=5バイト、総実行サイクル=5サイクル必要となる。また、メイン処理のループ処理を通じて繰り返し行う場合も同様に、総コマンドサイズ=5バイト、総実行サイクル=5サイクル必要となる。これに対し、タイマ割込み処理でQ’レジスタの設定を行うと、コマンド「EX ALL」2個分の記述を省略できるので、総コマンドサイズ=1バイト、総実行サイクル=1サイクルの増加に留まる。したがって、Q’レジスタの設定をタイマ割込み処理のみで実行すると、少なくとも、メモリの増加を抑えることが可能となる。 As explained using FIG. 234, if the Q' register is set during the initialization process of the main process, a total command size of 5 bytes and a total execution cycle of 5 cycles are required. Similarly, if this is repeated through the loop process of the main process, a total command size of 5 bytes and a total execution cycle of 5 cycles are required. In contrast, if the Q' register is set during timer interrupt processing, the description of two "EX ALL" commands can be omitted, so the increase in total command size is limited to 1 byte and total execution cycle of 1 cycle. Therefore, if the Q' register is set only during timer interrupt processing, it is at least possible to suppress the increase in memory.

(第2の実施形態)
続いて、メイン処理にサブレジスタ群726bを対応させ、タイマ割込み処理にメインレジスタ群726aを対応させた例を説明する。したがって、メインCPU500aは、まず、メインレジスタ群726aからサブレジスタ群726bに切り換え、サブレジスタ群726bを参照してメイン処理を実行し、タイマ割込みが生じた場合に、メイン処理を中断し、一旦、サブレジスタ群726bからメインレジスタ群726aに切り換えてタイマ割込み処理を実行し、タイマ割込み処理が終了すると、メインレジスタ群726aからサブレジスタ群726bに切り換えて、メイン処理を再開する。
Second Embodiment
Next, an example in which the sub-register group 726b corresponds to the main processing and the main register group 726a corresponds to the timer interrupt processing will be described. Therefore, the main CPU 500a first switches from the main register group 726a to the sub-register group 726b, executes the main processing by referring to the sub-register group 726b, suspends the main processing when a timer interrupt occurs, temporarily switches from the sub-register group 726b to the main register group 726a and executes the timer interrupt processing, and when the timer interrupt processing ends, switches from the main register group 726a to the sub-register group 726b and resumes the main processing.

また、ここでも、メインレジスタ群726aのQレジスタは、初期値がF0hとなっているので、さらに別の値を設定する必要はなく、サブレジスタ群726bのQ’レジスタのみF0hに書き替える。なお、上述したように、Q’レジスタを参照するコマンドが用いられる前に設定する必要がある。そこで、例えば、メイン処理の初期化処理(例えば、図82のCPU初期化処理)において、Q’レジスタを初期化することが考えられる。 In addition, here too, since the Q register of the main register group 726a has an initial value of F0h, there is no need to set another value, and only the Q' register of the sub-register group 726b is rewritten to F0h. As mentioned above, it is necessary to set the Q' register before a command that references it is used. Therefore, for example, it is possible to initialize the Q' register during the initialization process of the main process (for example, the CPU initialization process in FIG. 82).

図236は、Q’レジスタに値を設定するコマンドの一例を示した図である。ここで、メインCPU500aは、メイン処理の初期化処理において、Q’レジスタにF0hを設定する。ただし、上述したように、メインCPU500aは、現在対象としているレジスタ群であるメインレジスタ群726aのQレジスタの内容は更新できるが、他のレジスタ群であるサブレジスタ群726bのQ’レジスタにはアクセスすることができない。そこで、図234同様、図236のように、1行目のコマンド「EX ALL」によって、メインレジスタ群726aにおける8ビットのレジスタ(Q、A、F、B、C、D、E、H、L)および16ビットのレジスタ(IX、IY)から、サブレジスタ群726bにおける8ビットのレジスタ(Q’、A’、F’、B’、C’、D’、E’、H’、L’)および16ビットのレジスタ(IX’、IY’)に切り換える。 Figure 236 shows an example of a command to set a value in the Q' register. Here, the main CPU 500a sets F0h in the Q' register during the initialization process of the main process. However, as described above, the main CPU 500a can update the contents of the Q register in the main register group 726a, which is the currently targeted register group, but cannot access the Q' register in the sub-register group 726b, which is another register group. Therefore, as in Figure 234, the command "EX ALL" on the first line in Figure 236 switches from the 8-bit registers (Q, A, F, B, C, D, E, H, L) and 16-bit registers (IX, IY) in the main register group 726a to the 8-bit registers (Q', A', F', B', C', D', E', H', L') and 16-bit registers (IX', IY') in the sub-register group 726b.

そして、2行目のコマンド「LD Q,0F0H」によって、Q’レジスタにF0hを設定する。以降は、サブレジスタ群726bが参照されてメイン処理が行われることとなる。 Then, the command "LD Q,0F0H" on the second line sets F0h to the Q' register. From then on, the sub-register group 726b is referenced and the main processing is performed.

図236に示したコマンドの総コマンドサイズは、1行目のコマンド「EX ALL」2バイト+2行目のコマンド「LD Q,0F0H」1バイト=3バイトとなり、総実行サイクルは、1行目2サイクル+2行目1サイクル=3サイクルとなる。 The total command size of the commands shown in Figure 236 is 2 bytes of the command "EX ALL" on the first line + 1 byte of the command "LD Q,0F0H" on the second line = 3 bytes, and the total execution cycles are 2 cycles on the first line + 1 cycle on the second line = 3 cycles.

図234を用いて説明したように、メイン処理にメインレジスタ群726aを対応させ、タイマ割込み処理にサブレジスタ群726bを対応させた上で、メイン処理の初期化処理でQ’レジスタの設定を行うと、総コマンドサイズ=5バイト、総実行サイクル=5サイクル必要となる。また、メイン処理のループ処理を通じて繰り返しQ’レジスタの設定を行う場合も同様に、総コマンドサイズ=5バイト、総実行サイクル=5サイクル必要となる。これに対し、メイン処理にサブレジスタ群726bを対応させ、タイマ割込み処理にメインレジスタ群726aを対応させ、メイン処理の初期化処理でQ’レジスタの設定を行うと、コマンド「EX ALL」1個分の記述を省略できるので、総コマンドサイズ=3バイト、総実行サイクル=3サイクルの増加に抑えることができる。 As explained using FIG. 234, if the main register group 726a is associated with the main processing, the sub-register group 726b is associated with the timer interrupt processing, and the Q' register is set in the initialization processing of the main processing, then a total command size of 5 bytes and a total execution cycle of 5 cycles are required. Similarly, if the Q' register is repeatedly set through the loop processing of the main processing, a total command size of 5 bytes and a total execution cycle of 5 cycles are required. In contrast, if the sub-register group 726b is associated with the main processing, the main register group 726a is associated with the timer interrupt processing, and the Q' register is set in the initialization processing of the main processing, then the description of one "EX ALL" command can be omitted, so that the increase in the total command size and the total execution cycle can be suppressed to 3 bytes and 3 cycles, respectively.

また、上述したように、Q’レジスタは利用頻度が高いので、Q’レジスタの値は確実に設定されるべきである。そこで、Q’レジスタの設定を、メイン処理の初期化処理で1度のみ行うのに代えて、または、加えて、メイン処理のループ処理を通じて繰り返し行うことも考えられる。例えば、図236のコマンド群のうち、1行目のコマンド「EX ALL」のみをメイン処理の初期化処理で行い、図236のコマンド群のうち、2行目のコマンド「LD Q,0F0H」を、図88~図97(スロットマシン400)のいずれかで行う。こうすることで、メイン処理のループ処理に応じて、毎回、Q’レジスタにF0hを設定することができるので、仮に、Q’レジスタが初期値F1hになってしまうことがあったとしても、Q’レジスタの値を確実にF0hに設定することができ、Q’レジスタの値を安定的に維持することが可能となる。 As mentioned above, the Q' register is frequently used, so the value of the Q' register should be set reliably. Therefore, instead of or in addition to setting the Q' register only once in the initialization process of the main process, it is also possible to repeatedly set the Q' register through the loop process of the main process. For example, among the command group in FIG. 236, only the command "EX ALL" on the first line is set in the initialization process of the main process, and among the command group in FIG. 236, the command "LD Q,0F0H" on the second line is set in any of FIG. 88 to FIG. 97 (slot machine 400). In this way, the Q' register can be set to F0h every time according to the loop process of the main process, so that even if the Q' register becomes the initial value F1h, the value of the Q' register can be reliably set to F0h, and the value of the Q' register can be stably maintained.

ただし、メイン処理においてQ’レジスタを参照するコマンドを利用するので、Q’レジスタを参照するコマンドを利用するまでにQ’レジスタにF0hを設定する。 However, since a command that references the Q' register is used in the main processing, the Q' register is set to F0h before the command that references the Q' register is used.

また、Q’レジスタの設定を、メイン処理の初期化処理で1度のみ行う、または、メイン処理のループ処理で繰り返し行うのに代えて、または、加えて、タイマ割込み処理を通じて繰り返し行うことも考えられる。こうすることで、タイマ割込みが生じる度に、Q’レジスタにF0hを設定することができるので、仮に、Q’レジスタが初期値F1hになってしまうことがあったとしても、Q’レジスタの値を確実にF0hに設定することができ、Q’レジスタの値を安定的に維持することが可能となる。 In addition to or instead of setting the Q' register once in the initialization process of the main process, or repeatedly in the loop process of the main process, it is also possible to repeatedly set the Q' register through timer interrupt processing. In this way, the Q' register can be set to F0h every time a timer interrupt occurs, so even if the Q' register ever becomes the initial value F1h, the value of the Q' register can be reliably set to F0h, making it possible to stably maintain the value of the Q' register.

図237は、Q’レジスタに値を設定するコマンドの一例を示した図である。ここでは、タイマ割込み処理でQ’レジスタの設定を行う。なお、タイマ割込み処理が発生するまで(メイン処理において)、メインCPU500aは、サブレジスタ群726bを対象としている。具体的に、図237の1行目の指標「TMR_IPT:」は、当該タイマ割込み処理の先頭アドレスを示す。2行目のコマンド「LD Q,0F0H」によって、Q’レジスタにF0hを設定する。そして、メイン処理で用いていたレジスタの値を退避するため、3行目のコマンド「EX ALL」によって、サブレジスタ群726bにおける8ビットのレジスタ(Q’、A’、F’、B’、C’、D’、E’、H’、L’)および16ビットのレジスタ(IX’、IY’)から、メインレジスタ群726aにおける8ビットのレジスタ(Q、A、F、B、C、D、E、H、L)と、16ビットのレジスタ(IX、IY)に切り換える。こうして、対象がメインレジスタ群726aとなる。続いて、タイマ割込み処理で必要な処理を実行した後、5行目のコマンド「EX ALL」によって、メインレジスタ群726aからサブレジスタ群726bに切り換える。6行目のコマンド「EI」によって、割込が許可される。なお、ここでは、サブルーチンからメイン処理に戻る前にコマンド「EI」を行っても適切に割込が許可される。そして、7行目のコマンド「RETI」によって、メイン処理に戻る。 Figure 237 shows an example of a command to set a value in the Q' register. Here, the Q' register is set in timer interrupt processing. Note that until timer interrupt processing occurs (in main processing), the main CPU 500a targets the sub-register group 726b. Specifically, the index "TMR_IPT:" on the first line of Figure 237 indicates the starting address of the timer interrupt processing. The command "LD Q,0F0H" on the second line sets F0h to the Q' register. Then, in order to save the values of the registers used in the main process, the 8-bit registers (Q', A', F', B', C', D', E', H', L') and 16-bit registers (IX', IY') in the sub-register group 726b are switched to the 8-bit registers (Q, A, F, B, C, D, E, H, L) and 16-bit registers (IX, IY) in the main register group 726a by the command "EX ALL" in the third line. Thus, the target becomes the main register group 726a. Next, after performing the necessary processing in the timer interrupt processing, the main register group 726a is switched to the sub-register group 726b by the command "EX ALL" in the fifth line. The interrupt is permitted by the command "EI" in the sixth line. Note that here, the interrupt is permitted appropriately even if the command "EI" is performed before returning from the subroutine to the main process. Then, the command "RETI" on line 7 returns to the main process.

図237に示したコマンドの総コマンドサイズは、2行目のコマンド「LD Q,0F0H」1バイト+3行目のコマンド「EX ALL」2バイト+5行目のコマンド「EX ALL」2バイト+6行目のコマンド「EI」1バイト+7行目のコマンド「RETI」2バイト=8バイトとなり、総実行サイクルは、2行目1サイクル+3行目2サイクル+5行目2サイクル+6行目1サイクル+7行目4サイクル=10サイクルとなる。 The total command size of the commands shown in Figure 237 is 1 byte of the command "LD Q,0F0H" on line 2 + 2 bytes of the command "EX ALL" on line 3 + 2 bytes of the command "EX ALL" on line 5 + 1 byte of the command "EI" on line 6 + 2 bytes of the command "RETI" on line 7 = 8 bytes, and the total execution cycles are 1 cycle on line 2 + 2 cycles on line 3 + 2 cycles on line 5 + 1 cycle on line 6 + 4 cycles on line 7 = 10 cycles.

なお、コマンド「LD Q,0F0H」の位置は、タイマ割込み処理内においてコマンド「EX ALL」が実行されるより前でなければならない。したがって、3行目のコマンド「EX ALL」の直前とするとよい。 The command "LD Q,0F0H" must be placed before the command "EX ALL" is executed in the timer interrupt process. Therefore, it is recommended to place it immediately before the command "EX ALL" on the third line.

ここでは、メイン処理にサブレジスタ群726bを対応させ、タイマ割込み処理にメインレジスタ群726aを対応させた上で、Q’レジスタの設定を、メイン処理の初期化処理で1度のみ行う、メイン処理のループ処理を通じて繰り返し行う、または、タイマ割込み処理を通じて繰り返し行っている。いずれの場合においても、メイン処理にメインレジスタ群726aを対応させ、タイマ割込み処理にサブレジスタ群726bを対応させて、メイン処理の初期化処理でQ’レジスタの設定を行う場合に比べ、コマンド「EX ALL」1個分の記述を省略できるので、総コマンドサイズ=3バイト、総実行サイクル=3サイクルの増加に留めつつ、仮に、Q’レジスタが初期値F1hになってしまうことがあったとしても、Q’レジスタの値を確実にF0hに設定することができ、Q’レジスタの値を安定的に維持することが可能となる。 Here, the sub-register group 726b is associated with the main processing and the main register group 726a is associated with the timer interrupt processing, and the Q' register is set only once in the initialization processing of the main processing, or repeatedly through the loop processing of the main processing, or repeatedly through the timer interrupt processing. In either case, compared to the case where the main register group 726a is associated with the main processing and the sub-register group 726b is associated with the timer interrupt processing and the Q' register is set in the initialization processing of the main processing, the description of one command "EX ALL" can be omitted, so that the increase in the total command size = 3 bytes and the total execution cycle = 3 cycles is limited, and even if the Q' register becomes the initial value F1h, the value of the Q' register can be reliably set to F0h, and the value of the Q' register can be stably maintained.

<レジスタ群の切り換え>
ところで、メイン処理の実行中にタイマ割込みが発生すると、その割込みタイミングにおいてレジスタがどのような値となっているかに拘わらず、タイマ割込み処理においても継続してレジスタが利用される。したがって、タイマ割込みが生じた場合に、その割込みタイミングにおけるレジスタの内容を別途保持する必要がある。例えば、タイマ割込み処理からメイン処理に戻ったときにメイン処理をスムーズに再開するため、割込みタイミングにおけるレジスタの内容を、退避コマンドを用いてメインRAM500cのスタック領域に退避しなければならない。しかし、退避コマンドは、退避すべきレジスタの数に応じて多くなり、コマンドサイズのみならず、サイクル数も増える。
<Switching between register groups>
However, when a timer interrupt occurs during execution of the main process, the registers continue to be used in the timer interrupt process, regardless of the value of the register at the time of the interrupt. Therefore, when a timer interrupt occurs, it is necessary to separately store the register contents at the time of the interrupt. For example, in order to smoothly resume the main process when returning from the timer interrupt process to the main process, the register contents at the time of the interrupt must be saved to the stack area of the main RAM 500c using a save command. However, the number of save commands increases according to the number of registers to be saved, which increases not only the command size but also the number of cycles.

本実施形態では、上述したように、コマンド「EX ALL」によって、メインレジスタ群726aにおける8ビットのレジスタ(Q、A、F、B、C、D、E、H、L)および16ビットのレジスタ(IX、IY)と、サブレジスタ群726bにおける8ビットのレジスタ(Q’、A’、F’、B’、C’、D’、E’、H’、L’)および16ビットのレジスタ(IX’、IY’)とを切り換えている。かかるコマンドでは、メイン処理とタイマ割込み処理との切り換えにおいて、対象となるレジスタ群を一度に退避するとともに、退避していた他のレジスタ群を一度に復帰させることができる。かかるコマンド「EX ALL」は、コマンドサイズが2バイトに抑えられ、サイクル数も2サイクルしか要さない。 In this embodiment, as described above, the command "EX ALL" switches between the 8-bit registers (Q, A, F, B, C, D, E, H, L) and 16-bit registers (IX, IY) in the main register group 726a and the 8-bit registers (Q', A', F', B', C', D', E', H', L') and 16-bit registers (IX', IY') in the sub-register group 726b. With this command, when switching between main processing and timer interrupt processing, the target register group can be saved at once, and the other saved register groups can be restored at once. The command size of this command "EX ALL" is limited to 2 bytes, and the number of cycles is only 2.

また、コマンド「CALLEX mn」、コマンド「RETEX」によって、メインレジスタ群726aおよびサブレジスタ群726bを含むレジスタバンク単位で、第1レジスタバンク726と第2レジスタバンク728とを切り換えている。かかるコマンドでは、対象となるレジスタバンクを一度に退避するとともに、退避していた他のレジスタバンクを一度に復帰させることができる。かかるコマンド「CALLEX mn」は、アドレスmnを2000h~20FFhに限定すればコマンドサイズが2バイトに抑えられ、サイクル数も4サイクルしか要さない。コマンド「RETEX」は、コマンドサイズが2バイトに抑えられ、サイクル数も5サイクルしか要さない。以下、このような切換コマンドを第1の実施形態および第2の実施形態に当て嵌めて説明する。 The command "CALLEX mn" and command "RETEX" switch between the first register bank 726 and the second register bank 728 for each register bank including the main register group 726a and the sub-register group 726b. These commands can save the target register bank at once and restore the other saved register banks at once. The command "CALLEX mn" can be suppressed to 2 bytes in command size and requires only 4 cycles if the address mn is limited to 2000h to 20FFh. The command "RETEX" can be suppressed to 2 bytes in command size and requires only 5 cycles. Below, such switching commands will be explained by applying them to the first and second embodiments.

図238は、レジスタバンクおよびレジスタ群の遷移を説明するための図である。上述したように、メイン処理にメインレジスタ群726aを対応させ、タイマ割込み処理にサブレジスタ群726bを対応させた例(第1の実施形態)において、メインCPU500aは、メインレジスタ群726aを参照してメイン処理を順次実行し、タイマ割込みが生じた場合に、メイン処理を中断し、コマンド「EX ALL」により、一旦、メインレジスタ群726aからサブレジスタ群726bに切り換えて(1)、タイマ割込み処理を実行し、タイマ割込み処理が終了すると、コマンド「EX ALL」により、サブレジスタ群726bからメインレジスタ群726aに切り換えて(2)、メイン処理を再開する。また、メインCPU500aは、遊技制御処理における所定のタイミングで、コマンド「CALLEX mn」により、第1レジスタバンク726から第2レジスタバンク728に切り換えて(3)、遊技制御外処理を実行し、遊技制御外処理が完了すると、コマンド「RETEX」により、第2レジスタバンク728から第1レジスタバンク726に切り換えて(4)、遊技制御処理を再開する。 Figure 238 is a diagram for explaining the transition of register banks and register groups. As described above, in the example (first embodiment) in which the main register group 726a corresponds to the main processing and the sub-register group 726b corresponds to the timer interrupt processing, the main CPU 500a sequentially executes the main processing by referring to the main register group 726a, and when a timer interrupt occurs, it interrupts the main processing, switches from the main register group 726a to the sub-register group 726b by the command "EX ALL" (1), executes the timer interrupt processing, and when the timer interrupt processing ends, switches from the sub-register group 726b to the main register group 726a by the command "EX ALL" (2), and resumes the main processing. In addition, at a predetermined timing in the game control process, the main CPU 500a switches from the first register bank 726 to the second register bank 728 (3) using the command "CALLEX mn" to execute the game control non-processing, and when the game control non-processing is completed, switches from the second register bank 728 to the first register bank 726 (4) using the command "RETEX" to resume the game control process.

また、メイン処理にサブレジスタ群726bを対応させ、タイマ割込み処理にメインレジスタ群726aを対応させた例(第2の実施形態)において、メインCPU500aは、まず、コマンド「EX ALL」により、メインレジスタ群726aからサブレジスタ群726bに切り換え(1)、サブレジスタ群726bを参照してメイン処理を実行し、タイマ割込みが生じた場合に、メイン処理を中断し、コマンド「EX ALL」により、一旦、サブレジスタ群726bからメインレジスタ群726aに切り換えて(2)、タイマ割込み処理を実行し、タイマ割込み処理が終了すると、コマンド「EX ALL」により、メインレジスタ群726aからサブレジスタ群726bに切り換えて(1)、メイン処理を再開する。また、メインCPU500aは、遊技制御処理における所定のタイミングで、コマンド「CALLEX mn」により、第1レジスタバンク726から第2レジスタバンク728に切り換えて(3)、遊技制御外処理を実行し、遊技制御外処理が完了すると、コマンド「RETEX」により、第2レジスタバンク728から第1レジスタバンク726に切り換えて(4)、遊技制御処理を再開する。 In addition, in an example (second embodiment) in which the sub-register group 726b corresponds to the main processing and the main register group 726a corresponds to the timer interrupt processing, the main CPU 500a first switches from the main register group 726a to the sub-register group 726b (1) using the command "EX ALL", executes the main processing by referring to the sub-register group 726b, and when a timer interrupt occurs, suspends the main processing, temporarily switches from the sub-register group 726b to the main register group 726a using the command "EX ALL" (2), executes the timer interrupt processing, and when the timer interrupt processing is completed, switches from the main register group 726a to the sub-register group 726b using the command "EX ALL" (1), and resumes the main processing. In addition, at a predetermined timing in the game control process, the main CPU 500a switches from the first register bank 726 to the second register bank 728 (3) using the command "CALLEX mn" to execute the game control non-processing, and when the game control non-processing is completed, switches from the second register bank 728 to the first register bank 726 (4) using the command "RETEX" to resume the game control process.

このように、2つのレジスタバンクについて、第1レジスタバンク726は使用領域に対応させ、第2レジスタバンク728は別領域に対応させ、第1レジスタバンク726のメインレジスタ群726aおよびサブレジスタ群726bの一方をメイン処理に対応させ、他方をタイマ割込み処理に対応させることで、各領域の独立性、排他性を担保することができる。また、これらの切換とともに、切換コマンドを用いて、少なくともレジスタ群全体を一体的に切り換えることで、各領域の独立性、排他性を確保しつつ、コマンドサイズやサイクル数を削減することが可能となる。なお、ここでは、図238を用いて説明したように、第1レジスタバンク726のメインレジスタ群726aおよびサブレジスタ群726bの一方をメイン処理に対応させ、他方をタイマ割込み処理に対応させ、第2レジスタバンク728のメインレジスタ群728aおよびサブレジスタ群728bの一方もしくは両方を遊技制御外処理に対応させる例を挙げて説明したが、例えば、メイン処理、タイマ割込み処理、遊技制御外処理に対応させるレジスタバンクおよびレジスタ群は、任意に設定することができる。例えば、第2レジスタバンク728のメインレジスタ群728aおよびサブレジスタ群728bの一方をメイン処理に対応させ、他方をタイマ割込み処理に対応させ、第1レジスタバンク726のメインレジスタ群726aおよびサブレジスタ群726bの一方もしくは両方を遊技制御外処理に対応させたり、第1レジスタバンク726のメインレジスタ群726aをメイン処理に対応させ、第2レジスタバンク728のメインレジスタ群728aをタイマ割込み処理に対応させ、第1レジスタバンク726のサブレジスタ群726bおよび第2レジスタバンク728のサブレジスタ群728bの一方もしくは両方を遊技制御外処理に対応させるとしてもよい。 In this way, for the two register banks, the first register bank 726 corresponds to the use area, the second register bank 728 corresponds to another area, one of the main register group 726a and the sub-register group 726b of the first register bank 726 corresponds to the main processing, and the other corresponds to the timer interrupt processing, thereby ensuring the independence and exclusivity of each area. In addition, by switching at least the entire register group as a whole using a switching command in addition to these switching, it is possible to reduce the command size and the number of cycles while ensuring the independence and exclusivity of each area. Note that here, as explained using FIG. 238, an example was given in which one of the main register group 726a and the sub-register group 726b of the first register bank 726 corresponds to the main processing, the other corresponds to the timer interrupt processing, and one or both of the main register group 728a and the sub-register group 728b of the second register bank 728 correspond to the processing outside game control, but for example, the register bank and the register group corresponding to the main processing, the timer interrupt processing, and the processing outside game control can be set arbitrarily. For example, one of the main register group 728a and the sub-register group 728b of the second register bank 728 may correspond to main processing and the other may correspond to timer interrupt processing, and one or both of the main register group 726a and the sub-register group 726b of the first register bank 726 may correspond to processing outside game control, or the main register group 726a of the first register bank 726 may correspond to main processing, the main register group 728a of the second register bank 728 may correspond to timer interrupt processing, and one or both of the sub-register group 726b of the first register bank 726 and the sub-register group 728b of the second register bank 728 may correspond to processing outside game control.

続いて、メインCPU500aの電源が断たれた場合について説明する。メインCPU500aは、メイン処理を実行している間に電源が断たれると、メイン処理に対応するレジスタバンクのレジスタ群(第1レジスタバンク726のメインレジスタ群726aまたはサブレジスタ群726b)を、コマンド「PUSH」(例えば、コマンド「PUSH ALL」)等を通じて、メインRAM500cのスタック領域に退避させ、その後、例えば、図97に示した電源断時退避処理を行う。 Next, a case where the power supply to the main CPU 500a is cut off will be described. When the power supply to the main CPU 500a is cut off while the main process is being executed, the main CPU 500a saves the register group of the register bank corresponding to the main process (the main register group 726a or the sub-register group 726b of the first register bank 726) to the stack area of the main RAM 500c through a command "PUSH" (for example, the command "PUSH ALL"), and then performs the power-off save process shown in FIG. 97, for example.

ここでは、メイン処理に対応するレジスタ群(メインレジスタ群726aまたはサブレジスタ群726b)を退避させているが、タイマ割込み処理や遊技制御外処理に対応するレジスタ群の退避を割愛している。かかるタイマ割込み処理に対応するレジスタ群には、タイマ割込み処理が開始された後、必要な情報が設定され、すなわち、メイン処理からレジスタの内容が引き継がれることなく、タイマ割込み処理内でのみ参照され、タイマ割込み処理が終了すると、そのレジスタの内容は不要となる。同様に、遊技制御外処理に対応するレジスタ群には、遊技制御外処理が開始された後、必要な情報が設定され、すなわち、遊技制御処理からレジスタの内容が引き継がれることなく、遊技制御外処理内でのみ参照され、遊技制御外処理が終了すると、そのレジスタの内容は不要となる。したがって、タイマ割込み処理や遊技制御外処理に対応するレジスタ群を退避させなくても問題ない。 Here, the register group corresponding to the main processing (main register group 726a or sub-register group 726b) is saved, but the saving of the register group corresponding to the timer interrupt processing and the processing outside game control is omitted. In the register group corresponding to such timer interrupt processing, necessary information is set after the timer interrupt processing is started, that is, the contents of the register are not taken over from the main processing, but are only referenced within the timer interrupt processing, and when the timer interrupt processing ends, the contents of the register become unnecessary. Similarly, in the register group corresponding to the processing outside game control, necessary information is set after the processing outside game control is started, that is, the contents of the register are not taken over from the game control processing, but are only referenced within the processing outside game control, and when the processing outside game control ends, the contents of the register become unnecessary. Therefore, there is no problem if the register group corresponding to the timer interrupt processing and the processing outside game control is not saved.

また、メイン処理中ではなく、タイマ割込み処理中や遊技制御外処理中に電源が断たれると、以下のように処理が遂行される。タイマ割込み処理は、電源断による割込みより優先されている。すなわち、タイマ割込み処理中に電源断の割込みが生じたとしても、電源断時退避処理は即座に実行されず、タイマ割込み処理が終了してはじめて実行される。換言すれば、電源断時退避処理が開始するタイミングでは、タイマ割込み処理が完了している。なお、タイマ割込み処理は、上記のように、タイマ割込み処理内でのみ参照され、タイマ割込み処理が終了すると、そのレジスタの内容は不要となる。したがって、タイマ割込み処理中に電源断になったとしても、電源断時退避処理が開始するタイミングでは、タイマ割込み処理にかかるレジスタの内容を退避する必要がなくなるので問題は生じない。同様に、遊技制御外処理は、電源断による割込みより優先されている。すなわち、遊技制御外処理中に電源断の割込みが生じたとしても、電源断時退避処理は即座に実行されず、遊技制御外処理が終了してはじめて実行される。換言すれば、電源断時退避処理が開始するタイミングでは、タイマ割込み処理が完了している。なお、遊技制御外処理は、上記のように、遊技制御外処理内でのみ参照され、遊技制御外処理が終了すると、そのレジスタの内容は不要となる。したがって、遊技制御外処理中に電源断になったとしても、電源断時退避処理が開始するタイミングでは、遊技制御外処理にかかるレジスタの内容を退避する必要がなくなるので問題が生じない。 In addition, if the power is cut off not during main processing but during timer interrupt processing or during non-game control processing, the processing is carried out as follows. Timer interrupt processing has priority over interrupts due to power cut. In other words, even if a power cut interrupt occurs during timer interrupt processing, the power cut evacuation processing is not executed immediately, but is executed only after the timer interrupt processing is completed. In other words, at the timing when the power cut evacuation processing starts, the timer interrupt processing is completed. Note that, as described above, the timer interrupt processing is only referenced within the timer interrupt processing, and when the timer interrupt processing ends, the contents of the register become unnecessary. Therefore, even if the power is cut off during timer interrupt processing, there is no need to save the contents of the register related to the timer interrupt processing at the timing when the power cut evacuation processing starts, so no problem occurs. Similarly, non-game control processing has priority over interrupts due to power cut. In other words, even if a power cut interrupt occurs during non-game control processing, the power cut evacuation processing is not executed immediately, but is executed only after the non-game control processing ends. In other words, the timer interrupt process is completed when the power-off save process starts. As described above, the game control non-process is only referenced within the game control non-process, and when the game control non-process ends, the contents of the register become unnecessary. Therefore, even if the power is cut off during game control non-process, there is no need to save the contents of the register related to the game control non-process when the power-off save process starts, so no problem occurs.

なお、電源断によって、電源断時のレジスタバンクおよびレジスタ群の情報は消去される。そして、電源断の後、電源復帰すると、レジスタバンクおよびレジスタ群は、初期値である第1レジスタバンク726およびそのメインレジスタ群726aが設定される。したがって、電源復帰すると最初に実行される処理をメイン処理とし、そのメイン処理に、第1レジスタバンク726およびそのメインレジスタ群726aを対応させている。こうして、電源復帰後は、メイン処理から開始されることとなる。ここでは、電源断時に、第1レジスタバンク726およびそのメインレジスタ群726aを退避させているので、メイン処理を安定かつ確実に遂行することが可能となる。 When the power is turned off, the information in the register bank and register group at the time of the power outage is erased. Then, when the power is restored after the power outage, the register bank and register group are set to their initial values, the first register bank 726 and its main register group 726a. Therefore, the first process executed when the power is restored is the main process, and the first register bank 726 and its main register group 726a correspond to this main process. In this way, after the power is restored, the main process is started. Here, the first register bank 726 and its main register group 726a are saved when the power is turned off, making it possible to execute the main process stably and reliably.

上述した実施形態では、第1のレジスタ群をメインレジスタ群とし、第1レジスタをQレジスタとし、第1の値をF0hとし、第2のレジスタ群をサブレジスタ群とし、第2レジスタをQ’レジスタとし、第2の値をF0hとする例を挙げて説明したが、かかる場合に限らず、第1のレジスタ群をサブレジスタ群とし、第1レジスタをQ’レジスタとし、第1の値をF1hとし、第2のレジスタ群をメインレジスタ群とし、第2レジスタをQレジスタとし、第2の値をF1hとしてもよい。かかる構成では、メインレジスタ群のQレジスタにF1hを書き替えることとなる。また、上述した実施形態では、第1のレジスタバンクを第1レジスタバンク726とし、第2のレジスタバンクを第2レジスタバンク728とする例を挙げて説明したが、かかる場合に限らず、第1のレジスタバンクを第2レジスタバンク728とし、第2のレジスタバンクを第1レジスタバンク726としてもよい。 In the above embodiment, an example is described in which the first register group is the main register group, the first register is the Q register, the first value is F0h, the second register group is the sub-register group, the second register is the Q' register, and the second value is F0h. However, this is not limited to the above case, and the first register group may be the sub-register group, the first register is the Q' register, the first value is F1h, the second register group is the main register group, the second register is the Q register, and the second value is F1h. In this configuration, F1h is rewritten in the Q register of the main register group. In addition, in the above embodiment, an example is described in which the first register bank is the first register bank 726 and the second register bank is the second register bank 728. However, this is not limited to the above case, and the first register bank may be the second register bank 728 and the second register bank may be the first register bank 726.

<レジスタのアクセス方式>
ところで、従来のマイクロプロセッサでは、メインROM500bおよびメインRAM500cが割り当てられたアドレス空間(メモリ空間)と、入出力部704(入出力部704に対応するデバイス)が割り当てられたアドレス空間(I/O空間)とが独立して管理されていた。ここで、メインROM500bおよびメインRAM500cが割り当てられたメモリ空間をメモリマップと言う場合があり、入出力部704が割り当てられたI/O空間をI/Oマップという場合がある。
<Register access method>
In the conventional microprocessor, the address space (memory space) to which the main ROM 500b and the main RAM 500c are assigned and the address space (I/O space) to which the input/output unit 704 (the device corresponding to the input/output unit 704) is assigned are managed independently. Here, the memory space to which the main ROM 500b and the main RAM 500c are assigned may be called a memory map, and the I/O space to which the input/output unit 704 is assigned may be called an I/O map.

従来のマイクロプロセッサは、メモリ空間およびI/O空間それぞれに対し、専用の命令を使用してアクセスしなければならなかった。例えば、従来のマイクロプロセッサが、メインROM500bおよびメインRAM500cのメモリ空間専用の命令を使用すると、メモリリクエスト(MREQ)端子がイネーブル(有効)になることでメインROM500bやメインRAM500cへのアクセスが可能となる。また、従来のマイクロプロセッサが、入出力部704のI/O空間専用の命令を使用すると、I/Oリクエスト(IORQ)端子がイネーブル(有効)になることで入出力部704へのアクセスが可能となる。したがって、従来のマイクロプロセッサは、アクセスする対象が、メインROM500bやメインRAM500cであるか、入出力部704であるかに応じて、使用する命令を変えなければならなかった。ここで、従来のマイクロプロセッサが、入出力部704(デバイス)にアクセスするために設けられたアクセス方式をI/OマップドI/O方式と言う。かかるI/OマップドI/O方式に基づくコマンドにより、メインCPU500aは、入出力部704からレジスタに情報を読み出したり、レジスタから入出力部704に情報を書き込むことができる。 Conventional microprocessors had to use dedicated instructions to access the memory space and the I/O space. For example, when a conventional microprocessor uses an instruction dedicated to the memory space of the main ROM 500b and the main RAM 500c, the memory request (MREQ) terminal becomes enabled, allowing access to the main ROM 500b and the main RAM 500c. Also, when a conventional microprocessor uses an instruction dedicated to the I/O space of the input/output unit 704, the I/O request (IORQ) terminal becomes enabled, allowing access to the input/output unit 704. Therefore, conventional microprocessors had to change the instruction to be used depending on whether the object to be accessed was the main ROM 500b, the main RAM 500c, or the input/output unit 704. Here, the access method provided for conventional microprocessors to access the input/output unit 704 (device) is called the I/O mapped I/O method. Using commands based on this I/O-mapped I/O method, the main CPU 500a can read information from the input/output unit 704 to a register, and write information from the register to the input/output unit 704.

しかし、上述したように、本実施形態では、入出力部704のアドレス空間と、メインROM500bおよびメインRAM500cのアドレス空間とを一体化し、メモリ空間のFE00h~FFFFhに入出力部704を割り当てている。そのため、I/O空間という概念がなく、メインCPU500aは、メモリ空間のFE00h~FFFFhに割り当てられた入出力部704に、メモリ空間専用の命令を利用することでアクセスすることができる。ここで、メインCPU(プロセッサ)500aが、メインROM(記憶手段)500bやメインRAM(記憶手段)500cにアクセスするために設けられたアクセス方式をメモリマップドI/O方式と言う。かかるメモリマップドI/O方式に基づくコマンドにより、メインCPU500aは、入出力部704からレジスタに情報を読み出したり、レジスタから入出力部704に情報を書き込むことができる。 However, as described above, in this embodiment, the address space of the input/output unit 704 is integrated with the address spaces of the main ROM 500b and the main RAM 500c, and the input/output unit 704 is assigned to FE00h to FFFFh in the memory space. Therefore, there is no concept of I/O space, and the main CPU 500a can access the input/output unit 704 assigned to FE00h to FFFFh in the memory space by using instructions dedicated to the memory space. Here, the access method provided for the main CPU (processor) 500a to access the main ROM (storage means) 500b and the main RAM (storage means) 500c is called the memory-mapped I/O method. With commands based on this memory-mapped I/O method, the main CPU 500a can read information from the input/output unit 704 to a register and write information from a register to the input/output unit 704.

このように、本実施形態において、メインCPU500aは、メモリマップドI/O方式によって入出力部704にアクセスする。一方、従来のマイクロプロセッサのプログラムをそのまま流用できる等の汎用性の観点から、本実施形態において、I/OマップドI/O方式によるアクセスもできるようになっている。したがって、メインCPU500aは、メモリマップドI/O方式に加え、メモリ空間の一部をI/O空間に見立て、I/OマップドI/O方式によって入出力部704にアクセスすることが可能となる。なお、従来のマイクロプロセッサでもメモリマップドI/O方式により入出力部704にアクセスすることは可能であったが、I/OマップドI/O方式を用いるかメモリマップドI/O方式を用いるかは初期起動時に選択しなければならず、メモリマップドI/O方式を選択すると、I/OマップドI/O方式を用いることができなかった。 In this way, in this embodiment, the main CPU 500a accesses the input/output unit 704 by the memory-mapped I/O method. On the other hand, from the viewpoint of versatility, such as being able to directly use programs of conventional microprocessors, in this embodiment, access by the I/O-mapped I/O method is also possible. Therefore, in addition to the memory-mapped I/O method, the main CPU 500a can access the input/output unit 704 by the I/O-mapped I/O method, treating a part of the memory space as an I/O space. Note that, although conventional microprocessors were also able to access the input/output unit 704 by the memory-mapped I/O method, whether to use the I/O-mapped I/O method or the memory-mapped I/O method had to be selected at the time of initial startup, and if the memory-mapped I/O method was selected, the I/O-mapped I/O method could not be used.

図239は、アクセス方式の利用態様を説明するための説明図である。メモリマップドI/O方式は、LD命令やLDIR命令等、メインROM500bやメインRAM500cにアクセスするために準備された多数のコマンド(命令)を利用できる利点がある。一方、メモリマップドI/O方式は、入出力部704に対し、単なる読み書きを行う場合には、I/OマップドI/O方式に比べ、コマンドサイズが大きくなる欠点を有す。これに対し、I/OマップドI/O方式は、入出力部704に対し、単なる読み書きを行う場合には、メモリマップドI/O方式に比べ、コマンドサイズが小さくて済む利点がある。一方、I/OマップドI/O方式は、IN命令やOUT命令等、入出力部704にアクセスするために準備された限定的なコマンド(命令)しか利用できない欠点を有す。 Figure 239 is an explanatory diagram for explaining the usage of the access method. The memory-mapped I/O method has the advantage that it can use a large number of commands (instructions), such as the LD command and the LDIR command, that are prepared for accessing the main ROM 500b and the main RAM 500c. On the other hand, the memory-mapped I/O method has the disadvantage that the command size is larger than that of the I/O-mapped I/O method when simply reading and writing to the input/output unit 704. On the other hand, the I/O-mapped I/O method has the advantage that the command size is smaller than that of the memory-mapped I/O method when simply reading and writing to the input/output unit 704. On the other hand, the I/O-mapped I/O method has the disadvantage that only limited commands (instructions), such as the IN command and the OUT command, that are prepared for accessing the input/output unit 704, can be used.

プログラムにおいては、通常、入出力部704の単純な読み書きが多いので、メモリマップドI/O方式ではなく、I/OマップドI/O方式を用いることでコマンドサイズを小さくすることが可能となる。例えば、入出力部704の所定のアドレスに格納された値をAレジスタに読み出す場合、メモリマップドI/O方式のコマンド「LD A,(mn)」(mnは2バイトの整数)を利用すると、コマンドサイズが3バイト必要となるのに対し、I/OマップドI/O方式のコマンド「IN A,(g)」(gは1バイトの整数)を利用すると、コマンドサイズは2バイトで済む。したがって、通常、I/OマップドI/O方式を用いることとしている。 In a program, there are usually many simple reads and writes to the input/output unit 704, so it is possible to reduce the command size by using the I/O mapped I/O method rather than the memory mapped I/O method. For example, when reading a value stored at a specific address in the input/output unit 704 to the A register, if the memory mapped I/O method command "LD A, (mn)" (mn is a 2-byte integer) is used, a command size of 3 bytes is required, whereas if the I/O mapped I/O method command "IN A, (g)" (g is a 1-byte integer) is used, the command size is only 2 bytes. Therefore, the I/O mapped I/O method is usually used.

しかし、プログラムのうちの一部の処理においては、I/OマップドI/O方式のコマンド(命令)より、メモリマップドI/O方式のコマンド(命令)を利用した方が、遊技制御処理を行うための制御領域の容量を削減できる場合がある。具体的に、メモリ空間に割り当てられた入出力部704の同一のアドレスに対し、IN命令やOUT命令といったI/OマップドI/O方式によるコマンドでアクセスするより、LD命令等のメモリマップドI/O方式によるコマンドでアクセスした方が、総コマンドサイズが小さくなる場合がある。したがって、ここでは、その処理の内容に応じて、総コマンドサイズが小さくなる適切なアクセス方式を用いる。 However, in some processes within a program, it may be possible to reduce the capacity of the control area required to perform game control processing by using memory-mapped I/O commands rather than I/O-mapped I/O commands. Specifically, the total command size may be smaller when accessing the same address of input/output unit 704 allocated to memory space with a memory-mapped I/O command such as an LD command than when accessing the same address with an I/O-mapped I/O command such as an IN command or an OUT command. Therefore, here, an appropriate access method that reduces the total command size is used depending on the content of the process.

図240は、サブコマンド送信処理の一例を説明するためのフローチャートであり、図241は、サブコマンド送信処理を実現するための具体的なコマンドの一例を示した図である。かかるサブコマンド送信処理は、上述した、図23のステップS100-65、および、図98のステップS3100-11において実行される。サブコマンド送信処理では、指令電文(コマンド)が、送信バッファ(FIFO)を通じて副制御基板330、502に送信される。なお、ここでは、説明の便宜上、メインCPU500aがサブコマンド送信処理S3100-11を実行する例を挙げ、また、本実施形態に関係のないサブコマンド累積データに関する処理を省略する。かかる図240の説明におけるステップSの数値は、本図の説明においてのみ用いることとする。 Figure 240 is a flow chart for explaining an example of the subcommand transmission process, and Figure 241 is a diagram showing an example of a specific command for implementing the subcommand transmission process. Such subcommand transmission process is executed in step S100-65 of Figure 23 and step S3100-11 of Figure 98, as described above. In the subcommand transmission process, a command is transmitted to the sub-control boards 330 and 502 through a transmission buffer (FIFO). For the sake of convenience, an example is given in which the main CPU 500a executes the subcommand transmission process S3100-11, and processing related to the subcommand accumulated data that is not related to this embodiment is omitted. The numerical values of step S in the explanation of Figure 240 will be used only in the explanation of this figure.

なお、ここでは、副制御基板502に送信する4バイトの指令電文を構成する電文1、電文2、電文3、電文4が、それぞれDレジスタ、Eレジスタ、Bレジスタ、Cレジスタに設定されている。ただし、送信する指令電文によっては、電文2~4について事後的に設定する場合がある。また、電文3、4について電文が設定されていない場合、電文3、4として所定の値を設定する場合がある。 Note that here, messages 1, 2, 3, and 4, which make up the 4-byte command message to be sent to the sub-control board 502, are set in the D register, E register, B register, and C register, respectively. However, depending on the command message to be sent, messages 2 to 4 may be set afterwards. Also, if messages have not been set for messages 3 and 4, predetermined values may be set for messages 3 and 4.

図240に示すように、まず、メインCPU500aは、各レジスタの値を退避させ(S1)、電文1に基づいて電文2~4が既に設定済みか否か判定する(S2)。メインCPU500aは、電文2~4が設定済みであれば(S2におけるYES)、ステップS6に移行し、設定済みでなければ(S2におけるNO)、メインRAM500cから取得した値を電文2に設定し(S3)、電文1に基づいて電文3、4が既に設定済みか否か判定する(S4)。メインCPU500aは、電文3、4が設定済みであれば(S4におけるYES)、ステップS6に移行し、設定済みでなければ(S4におけるNO)、所定の値を電文3、4に設定する(S5)。 As shown in FIG. 240, first, the main CPU 500a saves the values of each register (S1) and determines whether or not telegrams 2 to 4 have already been set based on telegram 1 (S2). If telegrams 2 to 4 have already been set (YES in S2), the main CPU 500a proceeds to step S6. If telegrams 2 to 4 have not yet been set (NO in S2), the main CPU 500a sets the value obtained from the main RAM 500c to telegram 2 (S3) and determines whether telegrams 3 and 4 have already been set based on telegram 1 (S4). If telegrams 3 and 4 have already been set (YES in S4), the main CPU 500a proceeds to step S6. If telegrams 3 and 4 have not yet been set (NO in S4), the main CPU 500a sets predetermined values to telegrams 3 and 4 (S5).

続いて、メインCPU500aは、送信先のアドレスを設定し(S6)、電文2を被加算数として設定し(S7)、割込みを禁止する(S8)。メインCPU500aは、電文1~4を出力し(S9)、電文1~4のチェックサムを算出すると(S10)、算出したチェックサムも出力する(S11)。最後に、メインCPU500aは、割込みを許可し(S12)、退避させていた各レジスタの値を復帰させる(S13)。 The main CPU 500a then sets the destination address (S6), sets telegram 2 as the augend (S7), and disables interrupts (S8). The main CPU 500a outputs telegrams 1 to 4 (S9), calculates the checksums of telegrams 1 to 4 (S10), and also outputs the calculated checksum (S11). Finally, the main CPU 500a allows interrupts (S12), and restores the values of each register that had been saved (S13).

具体的に、図241の1行目の指標「CMDPROC」は当該サブコマンド送信処理の先頭アドレスを示す。かかる指標「CMDPROC」によって当該サブコマンド送信処理が呼び出される。2行目のコマンド「PUSH HL」によって、HLレジスタの値がスタック領域に退避され、3行目のコマンド「PUSH BC」によって、BCレジスタの値がスタック領域に退避される。かかる2、3行目のコマンドが、レジスタの値を退避させる図240のステップS1に相当する。 Specifically, the index "CMDPROC" on the first line of Figure 241 indicates the start address of the subcommand transmission process. The subcommand transmission process is called by this index "CMDPROC". The command "PUSH HL" on the second line saves the value of the HL register to the stack area, and the command "PUSH BC" on the third line saves the value of the BC register to the stack area. These commands on the second and third lines correspond to step S1 in Figure 240, which saves the register values.

図241の4行目のコマンド「LD A,D」によって、Dレジスタの値、すなわち、電文1の値がAレジスタに設定され、5行目のコマンド「JCP C,A,0B0H,CMDPROC01」によって、Aレジスタの値と、固定値「B0H」とが比較され、その結果、B0H未満であれば(キャリーフラグが立っていれば)、12行目の指標「CMDPROC01」に移動する。こうして、電文1の値がB0H未満であれば、次の処理を省略して12行目の指標「CMDPROC01」に移動することができる。かかる4、5行目のコマンドが、電文2~4が既に設定済みであればステップS6に移行する図240のステップS2に相当する。 The command "LD A,D" on line 4 of Fig. 241 sets the value of the D register, i.e., the value of telegram 1, in the A register, and the command "JCP C,A,0B0H,CMDPROC01" on line 5 compares the value of the A register with a fixed value "B0H", and if the result is less than B0H (if the carry flag is set), it moves to the index "CMDPROC01" on line 12. In this way, if the value of telegram 1 is less than B0H, the next process can be omitted and it can move to the index "CMDPROC01" on line 12. These commands on lines 4 and 5 correspond to step S2 in Fig. 240, which moves to step S6 if telegrams 2 to 4 have already been set.

図241の6行目のコマンド「LDQ A,(E)」によって、Qレジスタの値をアドレスの上位1バイトとし、Eレジスタの値をアドレスの下位1バイトとし、そのアドレスが示すメモリ領域に格納された1バイトの値(電文2)がAレジスタに設定され、7行目のコマンド「LD E,A」によって、Aレジスタの値、すなわち、電文2がEレジスタに設定される。かかる6、7行目のコマンドが、電文2を設定する図240のステップS3に相当する。 The command "LDQ A, (E)" on line 6 of Fig. 241 sets the value of the Q register to the upper byte of the address, the value of the E register to the lower byte of the address, and the value of that byte stored in the memory area indicated by that address (telegram 2) is set in the A register, and the command "LD E, A" on line 7 sets the value of the A register, i.e., telegram 2, in the E register. These commands on lines 6 and 7 correspond to step S3 in Fig. 240, which sets telegram 2.

図241の8行目のコマンド「JBIT Z,3,D,CMDPROC01」によって、Dレジスタの値(電文1)のビット3が0であれば(ゼロフラグが立っていれば)、12行目の指標「CMDPROC01」に移動する。こうして、電文1のビット3が0であれば、次の処理を省略して12行目の指標「CMDPROC01」に移動することができる。かかる8行目のコマンドが、電文3、4が既に設定済みであればステップS6に移行する図240のステップS4に相当する。 The command "JBIT Z,3,D,CMDPROC01" on line 8 of FIG. 241 moves to the index "CMDPROC01" on line 12 if bit 3 of the value of the D register (text 1) is 0 (if the zero flag is set). In this way, if bit 3 of text 1 is 0, the next process can be omitted and the program can move to the index "CMDPROC01" on line 12. This command on line 8 corresponds to step S4 in FIG. 240, which transitions to step S6 if texts 3 and 4 have already been set.

図241の9行目のコマンド「IN HL,(@CID____)」によって、Uレジスタの値をアドレスの上位1バイトとし、シンボル「@CID____」自体(1バイト値)を下位1バイトとし、そのアドレスが示すメモリ領域に格納された2バイトの値がHLレジスタに入力される。具体的には、そのアドレスが示すメモリ領域に格納された1バイトの値がLレジスタに入力され、そのアドレスに1を加えた値が示すメモリ領域に格納された1バイトの値がHレジスタに入力される。10行目のコマンド「LD B,H」によって、Hレジスタの値がBレジスタに設定され、11行目のコマンド「LD C,L」によって、Lレジスタの値がCレジスタに設定される。かかる9~11行目のコマンドが、電文3、4を設定する図240のステップS5に相当する。 The command "IN HL, (@CID_____)" on line 9 of Fig. 241 sets the value of the U register as the upper byte of the address, and the symbol "@CID_____" itself (1 byte value) as the lower byte, and inputs the 2-byte value stored in the memory area indicated by that address to the HL register. Specifically, the 1-byte value stored in the memory area indicated by that address is input to the L register, and the 1-byte value stored in the memory area indicated by the address plus 1 is input to the H register. The command "LD B, H" on line 10 sets the value of the H register to the B register, and the command "LD C, L" on line 11 sets the value of the L register to the C register. These commands on lines 9 to 11 correspond to step S5 in Fig. 240, which sets telegrams 3 and 4.

続いて、図241の13行目のコマンド「LD H,C」によって、Cレジスタの値がHレジスタに設定される。ここでは、Cレジスタに格納されている電文4をHレジスタに転送させることで、OUT命令で用いられるCレジスタを開放している。14行目のコマンド「LD C,@S1DT___」によって、シンボル「@S1DT___」自体がCレジスタに設定される。なお、シンボル「@S1DT___」は、送信専用の非同期シリアル通信回路の送信バッファ(FIFO)を示している。かかる13、14行目のコマンドが、送信先のアドレスを設定する図240のステップS6に相当する。 Next, the command "LD H, C" on line 13 of Figure 241 sets the value of the C register to the H register. Here, the C register is freed for use with the OUT command by transferring message 4 stored in the C register to the H register. The command "LD C, @S1DT___" on line 14 sets the symbol "@S1DT___" itself to the C register. Note that the symbol "@S1DT___" indicates the transmission buffer (FIFO) of the asynchronous serial communication circuit dedicated to transmission. These commands on lines 13 and 14 correspond to step S6 in Figure 240, which sets the destination address.

図241の15行目のコマンド「LD A,E」によって、Eレジスタの値(電文2)がAレジスタに設定される。これは、図240のステップS10においてチェックサムを算出する際にAレジスタの値を被加算数とするためである。かかる15行目のコマンドが、Aレジスタに電文2を設定する図240のステップS7に相当する。そして、16行目のコマンド「DI」によって、割込が禁止される。かかる16行目のコマンドが、図240のステップS8に相当する。 The command "LD A, E" on line 15 of Fig. 241 sets the value of the E register (message 2) in the A register. This is because the value of the A register is used as the augend when calculating the checksum in step S10 of Fig. 240. This command on line 15 corresponds to step S7 of Fig. 240, which sets message 2 in the A register. Then, the command "DI" on line 16 disables interrupts. This command on line 16 corresponds to step S8 of Fig. 240.

図241の17行目のコマンド「OUT (C),D」によって、Uレジスタの値をアドレスの上位1バイトとし、Cレジスタの値を下位1バイトとし、そのアドレスが示すメモリ領域にDレジスタの値(電文1)が出力される。18行目のコマンド「OUT (C),A」によって、Uレジスタの値をアドレスの上位1バイトとし、Cレジスタの値を下位1バイトとし、そのアドレスが示すメモリ領域にAレジスタの値(電文2)が出力される。19行目のコマンド「OUT (C),B」によって、Uレジスタの値をアドレスの上位1バイトとし、Cレジスタの値を下位1バイトとし、そのアドレスが示すメモリ領域にBレジスタの値(電文3)が出力される。20行目のコマンド「OUT (C),H」によって、Uレジスタの値をアドレスの上位1バイトとし、Cレジスタの値を下位1バイトとし、そのアドレスが示すメモリ領域にHレジスタの値(電文4)が出力される。ここでは、シンボル「@S1DT___」自体(アドレス値)に、Dレジスタ、Aレジスタ(Eレジスタ)、Bレジスタ、Hレジスタ(Cレジスタ)の順、すなわち、電文1、2、3、4の順にデータが出力されている。かかる17~20行目のコマンドが、電文1~4を出力する図240のステップS9に相当する。 The command "OUT (C), D" on line 17 of Figure 241 sets the value of the U register to the upper byte of the address, the value of the C register to the lower byte, and outputs the value of the D register (telegram 1) to the memory area indicated by that address. The command "OUT (C), A" on line 18 sets the value of the U register to the upper byte of the address, the value of the C register to the lower byte, and outputs the value of the A register (telegram 2) to the memory area indicated by that address. The command "OUT (C), B" on line 19 sets the value of the U register to the upper byte of the address, the value of the C register to the lower byte, and outputs the value of the B register (telegram 3) to the memory area indicated by that address. The command "OUT (C), H" on line 20 sets the value of the U register to the upper byte of the address, the value of the C register to the lower byte, and outputs the value of the H register (telegram 4) to the memory area indicated by that address. Here, data is output to the symbol "@S1DT___" itself (address value) in the order of D register, A register (E register), B register, and H register (C register), that is, in the order of messages 1, 2, 3, and 4. The commands on lines 17 to 20 correspond to step S9 in FIG. 240, which outputs messages 1 to 4.

図241の21行目のコマンド「ADD A,D」によって、Aレジスタの値(電文2)にDレジスタの値(電文1)が加算され、その結果がAレジスタに保持される。22行目のコマンド「ADD A,B」によって、Aレジスタの値(チェックサム値)にBレジスタの値(電文3)が加算され、その結果がAレジスタに保持される。23行目のコマンド「ADD A,H」によって、Aレジスタの値(チェックサム値)にHレジスタの値(電文4)が加算され、その結果がAレジスタに保持される。かかる21~23行目のコマンドが、電文1~4のチェックサムを算出する図240のステップS10に相当する。 The command "ADD A, D" on line 21 of Figure 241 adds the value in the D register (message 1) to the value in the A register (message 2), and the result is stored in the A register. The command "ADD A, B" on line 22 adds the value in the B register (message 3) to the value in the A register (checksum value), and the result is stored in the A register. The command "ADD A, H" on line 23 adds the value in the H register (message 4) to the value in the A register (checksum value), and the result is stored in the A register. These commands on lines 21 to 23 correspond to step S10 in Figure 240, which calculates the checksums of messages 1 to 4.

図241の24行目のコマンド「OUT (C),A」によって、Uレジスタの値をアドレスの上位1バイトとし、Cレジスタの値を下位1バイトとし、そのアドレスが示すメモリ領域にAレジスタの値(チェックサム値)が出力される。こうして、電文1~4とチェックサム値の合計5バイトの指令電文が送信バッファに出力される。かかる24行目のコマンドが、算出したチェックサムを出力する図240のステップS11に相当する。そして、25行目のコマンド「EI」によって、割込が許可される。かかる25行目のコマンドが、図240のステップS12に相当する。 The command "OUT (C), A" on line 24 of Fig. 241 sets the value of the U register as the most significant byte of the address, the value of the C register as the least significant byte, and outputs the value of the A register (checksum value) to the memory area indicated by that address. In this way, a command message of 5 bytes in total, consisting of messages 1 to 4 and the checksum value, is output to the send buffer. This command on line 24 corresponds to step S11 in Fig. 240, which outputs the calculated checksum. Then, the command "EI" on line 25 allows an interrupt. This command on line 25 corresponds to step S12 in Fig. 240.

図241の26行目のコマンド「POP BC」によって、スタック領域に退避されていたデータがBCレジスタに復帰され、27行目のコマンド「POP HL」によって、スタック領域に退避されていたデータがHLレジスタに復帰される。かかる26、27行目のコマンドが、レジスタの値を復帰させる図240のステップS13に相当する。そして、28行目のコマンド「RET」によって、呼び出し元の処理に復帰する。 The command "POP BC" on line 26 of Fig. 241 restores the data saved in the stack area to the BC register, and the command "POP HL" on line 27 restores the data saved in the stack area to the HL register. These commands on lines 26 and 27 correspond to step S13 in Fig. 240, which restores the register values. Then, the command "RET" on line 28 returns to the process that called the call.

図241においては、図240におけるサブコマンド送信処理を、IN命令やOUT命令を利用したI/OマップドI/O方式で実現している。しかしながら、上述したように、プログラムのうちの一部の処理においては、メモリマップドI/O方式の命令を利用した方が、コマンドサイズが小さくなる場合がある。以下、一部の処理にメモリマップドI/O方式を適用する例を挙げて説明する。 In Fig. 241, the subcommand transmission process in Fig. 240 is realized by an I/O mapped I/O method using an IN command and an OUT command. However, as mentioned above, in some processes of a program, the command size may be smaller if memory mapped I/O commands are used. Below, an example of applying the memory mapped I/O method to some processes is explained.

図242は、サブコマンド送信処理を実現するための他のコマンドの一例を示した図である。ここでも、図241同様、副制御基板502に送信する4バイトの電文1、2、3、4が、それぞれDレジスタ、Eレジスタ、Bレジスタ、Cレジスタに設定されている。 Figure 242 shows an example of another command for implementing the sub-command transmission process. Here, as in Figure 241, the four-byte messages 1, 2, 3, and 4 to be transmitted to the sub-control board 502 are set in the D register, E register, B register, and C register, respectively.

図241のコマンド群と図242のコマンド群とを比較すると、ステップS5に対応する(1)で示したコマンド群、および、ステップS6~S11に対応する(2)で示したコマンド群が相違している。ここでは、(1)のコマンド群および(2)のコマンド群それぞれに焦点を当てて、総コマンドサイズの違いを説明する。 Comparing the command group in FIG. 241 with the command group in FIG. 242, there are differences in the command group indicated by (1) corresponding to step S5, and the command group indicated by (2) corresponding to steps S6 to S11. Here, we will focus on the command group in (1) and the command group in (2) to explain the difference in total command size.

(1)のコマンド群について、図242の9行目のコマンド「LD BC,(@CID____)」によって、シンボル「@CID____」が示すメモリ領域に格納された2バイトの値がBCレジスタに設定される。具体的に、シンボル「@CID____」が示すメモリ領域に格納された1バイトの値がCレジスタに入力され、シンボル「@CID____」+1が示すメモリ領域に格納された1バイトの値がBレジスタに入力される。かかる9行目のコマンドが、電文3、4を設定する図240のステップS5に相当する。 For the command group (1), the command "LD BC, (@CID_____)" on line 9 of FIG. 242 sets the two-byte value stored in the memory area indicated by the symbol "@CID_____" to the BC register. Specifically, the one-byte value stored in the memory area indicated by the symbol "@CID_____" is input to the C register, and the one-byte value stored in the memory area indicated by the symbol "@CID_____" + 1 is input to the B register. This command on line 9 corresponds to step S5 in FIG. 240, which sets telegrams 3 and 4.

図241の例においては、I/OマップドI/O方式が用いられているので、IN命令で入力した値の設定先としてHLレジスタは選択できるが、BCレジスタを選択できない。換言すれば、コマンド「IN BC,(mn)」(mnは2バイトの整数)はコマンドとして準備されていない。したがって、図241の例においては、シンボル「@CID____」が示すメモリ領域に格納された2バイト値を、一旦、HLレジスタに保持し、その後、BレジスタおよびCレジスタにそれぞれ転送しなければならない。これに対し、図242のメモリマップドI/O方式では、LD命令を利用することで、シンボル「@CID____」が示すメモリ領域に格納された2バイトの値を、直接、BCレジスタに設定することができる。 In the example of FIG. 241, the I/O mapped I/O method is used, so the HL register can be selected as the setting destination for the value input by the IN command, but the BC register cannot be selected. In other words, the command "IN BC, (mn)" (mn is a 2-byte integer) is not prepared as a command. Therefore, in the example of FIG. 241, the 2-byte value stored in the memory area indicated by the symbol "@CID_____" must be temporarily held in the HL register, and then transferred to the B register and C register, respectively. In contrast, in the memory mapped I/O method of FIG. 242, the LD command can be used to directly set the 2-byte value stored in the memory area indicated by the symbol "@CID_____" in the BC register.

ここで、図241の(1)のコマンド群の総コマンドサイズは、9行目のコマンド「IN HL,(@CID____)」3バイト+10行目のコマンド「LD B,H」1バイト+11行目のコマンド「LD C,L」1バイト=5バイトであるのに対し、図242の(1)のコマンド群(コマンド)の総コマンドサイズは、9行目のコマンド「LD BC,(@CID____)」4バイトとなる。したがって、I/OマップドI/O方式をメモリマップドI/O方式に変更することで総コマンドサイズを1バイト削減できることが理解できる。 Here, the total command size of the command group in Figure 241 (1) is 3 bytes for the command "IN HL, (@CID_____)" on line 9 + 1 byte for the command "LD B,H" on line 10 + 1 byte for the command "LD C,L" on line 11 = 5 bytes, whereas the total command size of the command group (command) in Figure 242 (1) is 4 bytes for the command "LD BC, (@CID_____)" on line 9. Therefore, it can be seen that the total command size can be reduced by 1 byte by changing from the I/O mapped I/O method to the memory mapped I/O method.

続いて、(2)のコマンド群について、図242の11行目のコマンド「LD HL,@S2DT___」によって、シンボル「@S2DT___」自体の2バイト値がHLレジスタに設定される。なお、シンボル「@S2DT___」は、送信専用の非同期シリアル通信回路の入力バッファを示している。かかる11行目のコマンドが、送信先のアドレスを設定する図240のステップS6に相当する。図241の例においては、I/OマップドI/O方式を用いているので、OUT命令を利用するためにCレジスタを開放しなければならなかった。これに対し、メモリマップドI/O方式では、Cレジスタを開放する必要がなく、送信先のアドレスをHLレジスタに保持することができる。したがって、図242の例では、図241の13行目のコマンド「LD H,C」を削除することができる。 Next, for the command group (2), the 2-byte value of the symbol "@S2DT" itself is set in the HL register by the command "LD HL, @S2DT" on line 11 of FIG. 242. The symbol "@S2DT" indicates the input buffer of the asynchronous serial communication circuit dedicated to transmission. The command on line 11 corresponds to step S6 in FIG. 240, which sets the destination address. In the example of FIG. 241, since the I/O mapped I/O method is used, the C register had to be released in order to use the OUT command. In contrast, with the memory mapped I/O method, there is no need to release the C register, and the destination address can be held in the HL register. Therefore, in the example of FIG. 242, the command "LD H, C" on line 13 of FIG. 241 can be deleted.

図242の12行目のコマンド「LD A,E」によって、Eレジスタの値(電文2)がAレジスタに設定される。かかる12行目のコマンドが、Aレジスタに電文2を設定する図240のステップS7に相当する。そして、13行目のコマンド「DI」によって、割込が禁止される。かかる13行目のコマンドが、図240のステップS8に相当する。 The command "LD A, E" on line 12 of Fig. 242 sets the value of the E register (message 2) in the A register. This command on line 12 corresponds to step S7 in Fig. 240, which sets message 2 in the A register. Then, the command "DI" on line 13 inhibits interrupts. This command on line 13 corresponds to step S8 in Fig. 240.

図242の14行目のコマンド「LD (HL),D」によって、HLレジスタのアドレスで示されるメモリ領域にDレジスタの値(電文1)が格納される。15行目のコマンド「LD (HL),A」によって、HLレジスタのアドレスで示されるメモリ領域にAレジスタの値(電文2)が格納される。16行目のコマンド「LD (HL),B」によって、HLレジスタのアドレスで示されるメモリ領域にBレジスタの値(電文3)が格納される。17行目のコマンド「LD (HL),C」によって、HLレジスタのアドレスで示されるメモリ領域にCレジスタの値(電文4)が格納される。ここでは、シンボル「@S1DT___」自体(アドレス値)に、Dレジスタ、Aレジスタ(Eレジスタ)、Bレジスタ、Cレジスタの順、すなわち、電文1、2、3、4の順にデータが格納され、その結果、電文1、2、3、4の順にデータが送信バッファに出力されることになる。かかる14~17行目のコマンドが、電文1~4を出力する図240のステップS9に相当する。 The command "LD (HL), D" on line 14 of FIG. 242 stores the value of the D register (message 1) in the memory area indicated by the address of the HL register. The command "LD (HL), A" on line 15 stores the value of the A register (message 2) in the memory area indicated by the address of the HL register. The command "LD (HL), B" on line 16 stores the value of the B register (message 3) in the memory area indicated by the address of the HL register. The command "LD (HL), C" on line 17 stores the value of the C register (message 4) in the memory area indicated by the address of the HL register. Here, the symbol "@S1DT____" itself (address value) stores data in the order of the D register, A register (E register), B register, and C register, that is, in the order of messages 1, 2, 3, and 4, and as a result, the data is output to the send buffer in the order of messages 1, 2, 3, and 4. The commands on lines 14 to 17 correspond to step S9 in FIG. 240, which outputs messages 1 to 4.

図242の18行目のコマンド「ADD A,D」によって、Aレジスタの値(電文2)にDレジスタの値(電文1)が加算され、その結果がAレジスタに保持される。19行目のコマンド「ADD A,B」によって、Aレジスタの値(チェックサム値)にBレジスタの値(電文3)が加算され、その結果がAレジスタに保持される。20行目のコマンド「ADD A,C」によって、Aレジスタの値(チェックサム値)にCレジスタの値(電文4)が加算され、その結果がAレジスタに保持される。かかる18~20行目のコマンドが、電文1~4のチェックサムを算出する図240のステップS10に相当する。 The command "ADD A, D" on line 18 of Figure 242 adds the value in the D register (message 1) to the value in the A register (message 2), and the result is stored in the A register. The command "ADD A, B" on line 19 adds the value in the B register (message 3) to the value in the A register (checksum value), and the result is stored in the A register. The command "ADD A, C" on line 20 adds the value in the C register (message 4) to the value in the A register (checksum value), and the result is stored in the A register. These commands on lines 18 to 20 correspond to step S10 in Figure 240, which calculates the checksums of messages 1 to 4.

図242の21行目のコマンド「LD (HL),A」によって、HLレジスタのアドレスで示されるメモリ領域にAレジスタの値(チェックサム値)が格納される。こうして、電文1~4とチェックサム値の合計5バイトの指令電文が送信バッファに格納され、その結果、指令電文が送信バッファに出力されることになる。かかる21行目のコマンドが、算出したチェックサムを出力する図240のステップS11に相当する。 The command "LD (HL), A" on line 21 of Figure 242 stores the value of the A register (checksum value) in the memory area indicated by the address of the HL register. In this way, a command message of 5 bytes in total, consisting of messages 1 to 4 and the checksum value, is stored in the transmission buffer, and as a result, the command message is output to the transmission buffer. This command on line 21 corresponds to step S11 in Figure 240, which outputs the calculated checksum.

図241の例においては、I/OマップドI/O方式により、入出力部704に出力するためにOUT命令が利用されている。これに対し、メモリマップドI/O方式では、LD命令を利用することができる。したがって、送信先のアドレスをCレジスタではなくHLレジスタに保持し、LD命令によって各レジスタの値を、HLレジスタのアドレスが示すメモリ領域に格納することでコマンドサイズを削減することが可能となる。 In the example of FIG. 241, the I/O mapped I/O method uses the OUT command to output to the input/output unit 704. In contrast, the memory mapped I/O method can use the LD command. Therefore, it is possible to reduce the command size by holding the destination address in the HL register instead of the C register, and storing the values of each register in the memory area indicated by the address in the HL register using the LD command.

ここで、図241の(2)のコマンド群の総コマンドサイズは、13行目のコマンド「LD H,C」1バイト+14行目のコマンド「LD C,@S1DT___」2バイト+15行目のコマンド「LD A,E」1バイト+16行目のコマンド「DI」1バイト+17行目のコマンド「OUT (C),D」2バイト+18行目のコマンド「OUT (C),A」2バイト+19行目のコマンド「OUT (C),B」2バイト+20行目のコマンド「OUT (C),H」2バイト+21行目のコマンド「ADD A,D」1バイト+22行目のコマンド「ADD A,B」1バイト+23行目のコマンド「ADD A,H」1バイト+24行目のコマンド「OUT (C),A」2バイト=18バイトであるのに対し、図242の(2)のコマンド群の総コマンドサイズは、11行目のコマンド「LD HL,@S2DT___」3バイト+12行目のコマンド「LD A,E」1バイト+13行目のコマンド「DI」1バイト+14行目のコマンド「LD (HL),D」1バイト+15行目のコマンド「LD (HL),A」1バイト+16行目のコマンド「LD (HL),B」1バイト+17行目のコマンド「LD (HL),C」1バイト+18行目のコマンド「ADD A,D」1バイト+19行目のコマンド「ADD A,B」1バイト+20行目のコマンド「ADD A,C」1バイト+21行目のコマンド「LD (HL),A」1バイト=13バイトとなる。 Here, the total command size of the command group in (2) of Figure 241 is 1 byte of the command "LD H, C" on the 13th line + 2 bytes of the command "LD C, @S1DT___" on the 14th line + 1 byte of the command "LD A, E" on the 15th line + 1 byte of the command "DI" on the 16th line + 2 bytes of the command "OUT (C), D" on the 17th line + 2 bytes of the command "OUT (C), A" on the 18th line + 2 bytes of the command "OUT (C), B" on the 19th line + 2 bytes of the command "OUT (C), H" on the 20th line + 1 byte of the command "ADD A, D" on the 21st line + 1 byte of the command "ADD A, B" on the 22nd line + 1 byte of the command "ADD A, H" on the 23rd line + 1 byte of the command "OUT 2 bytes for "LD HL, @S2DT___" on line 11 + 1 byte for "LD A, E" on line 12 + 1 byte for "DI" on line 13 + 1 byte for "LD (HL), D" on line 14 + 1 byte for "LD (HL), A" on line 15 + 1 byte for "LD (HL), B" on line 16 + 1 byte for "LD (HL), C" on line 17 + 1 byte for "ADD A, D" on line 18 + 1 byte for "ADD A, B" on line 19 + 1 byte for "ADD A, C" on line 20 + 1 byte for "LD (HL), A" on line 21 = 13 bytes.

したがって、(2)のコマンド群に関し、I/OマップドI/O方式をメモリマップドI/O方式に変更することで総コマンドサイズを5バイト削減できる。図241の(2)のコマンド群と図242の(2)のコマンド群とを比較して理解できるように、OUT命令をLD命令に置き換える毎に、総コマンドサイズを1バイト削減可能となる。 Therefore, for the command group (2), the total command size can be reduced by 5 bytes by changing the I/O mapped I/O method to the memory mapped I/O method. As can be seen by comparing the command group (2) in FIG. 241 with the command group (2) in FIG. 242, the total command size can be reduced by 1 byte each time an OUT instruction is replaced with an LD instruction.

このように、本実施形態では、I/OマップドI/O方式により入出力部704にアクセスしつつ、処理の内容によっては、総コマンドサイズが小さくなるメモリマップドI/O方式により入出力部704にアクセスしている。このように、同一のプログラムにおいて、I/OマップドI/O方式とメモリマップドI/O方式とを混在させ、処理の内容によって総コマンドサイズが小さくなるアクセス方式を適用することで、コマンドの短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 In this way, in this embodiment, while the input/output unit 704 is accessed using the I/O mapped I/O method, depending on the content of the processing, the input/output unit 704 is accessed using the memory mapped I/O method, which reduces the total command size. In this way, by mixing the I/O mapped I/O method and the memory mapped I/O method in the same program and applying an access method that reduces the total command size depending on the content of the processing, it is possible to shorten commands and ensure the capacity of the control area for performing game control processing.

<メモリマップドI/O方式の利用例1>
上述したように従来のマイクロプロセッサでは、I/OマップドI/O方式を用いて入出力部704にアクセスしていた。この場合、入出力部704を割り当て得るI/O空間は256バイトに制限される。換言すれば、従来のマイクロプロセッサでは、1バイトのアドレス情報のみによって入出力部704を特定することができる。
<Memory Mapped I/O Method Usage Example 1>
As described above, in conventional microprocessors, the I/O unit 704 is accessed using the I/O mapped I/O method. In this case, the I/O space to which the I/O unit 704 can be allocated is limited to 256 bytes. In other words, in conventional microprocessors, the I/O unit 704 can be specified by only one byte of address information.

図243は、CPU初期化処理を実現するためのコマンド群の一部を示した図であり、図244は、CPU初期化処理で参照するテーブルを示した図である。ここでは、説明の便宜上、上述したCPU初期化処理のうちの初期設定処理(図22のステップS100-1、および、図82のステップS2000-1)を説明する。初期設定処理では、入出力部704(内蔵レジスタ)に設定データを設定することで入出力部704の初期設定を行う。なお、ここでは、メインCPU500aが初期設定処理S2000-1を実行する例を挙げる。 Figure 243 shows some of the commands for implementing the CPU initialization process, and Figure 244 shows a table referenced in the CPU initialization process. For ease of explanation, the initial setting process (step S100-1 in Figure 22 and step S2000-1 in Figure 82) of the CPU initialization process described above will be explained here. In the initial setting process, the input/output unit 704 is initialized by setting setting data in the input/output unit 704 (built-in register). Note that here, an example is given in which the main CPU 500a executes the initial setting process S2000-1.

図243の1行目のコマンド「LD HL,T_CPU_REG」によって、読み出し元となるCPU内蔵レジスタ設定データテーブルのデータ群の先頭アドレス「T_CPU_REG」をHLレジスタに設定する。2行目のコマンド「LD B,@NUM_CPU_REG」によって、シンボル「@NUM_CPU_REG」自体がBレジスタに設定される。 The command "LD HL, T_CPU_REG" on the first line of Figure 243 sets the top address "T_CPU_REG" of the data group in the CPU built-in register setting data table from which data is read in the HL register. The command "LD B, @NUM_CPU_REG" on the second line sets the symbol "@NUM_CPU_REG" itself in the B register.

なお、図244のCPU内蔵レジスタ設定データテーブルの48行目を参照して理解できるように、シンボル「@NUM_CPU_REG」には、コマンド「EQU ($-T_CPU_REG)/2」が記載されている。ここで、「$」は、転送元となるデータ群の最終アドレスの次のアドレス、すなわち、シンボル「@NUM_CPU_REG」自体であり、「T_CPU_REG」は転送元となるデータ群の先頭アドレスなので、$-T_CPU_REGの値(データ数を示す1バイト値)の値が、1バイト値の総バイト数となり、その値を、アドレスと値との組み合わせ数である2で除算すると、設定データ数が導出される。例えば、図244の例では、設定データ数は30/2=15となる。 As can be seen by referring to the 48th row of the CPU internal register setting data table in FIG. 244, the symbol "@NUM_CPU_REG" contains the command "EQU ($-T_CPU_REG)/2". Here, "$" is the address next to the final address of the source data group, i.e., the symbol "@NUM_CPU_REG" itself, and "T_CPU_REG" is the first address of the source data group, so the value of $-T_CPU_REG (a 1-byte value indicating the number of data) is the total number of bytes of the 1-byte value, and the number of set data is derived by dividing this value by 2, which is the number of combinations of addresses and values. For example, in the example in FIG. 244, the number of set data is 30/2=15.

図243の3行目の指標「INITIAL01」は繰り返し処理の先頭アドレスを示す。4行目のコマンド「LDIN AC,(HL)」によって、HLレジスタのアドレスで示されるメモリ領域に格納された1バイト値がCレジスタに格納され、HLレジスタに「1」を加えた値のアドレスで示されるメモリ領域に格納された1バイト値がAレジスタに格納される。5行目のコマンド「OUT (C),A」によって、Cレジスタのアドレスで示されるメモリ領域(内蔵レジスタ)に、Aレジスタの値(設定データ)が出力される。 The index "INITIAL01" on the third line of Figure 243 indicates the start address of the repeat process. The command "LDIN AC, (HL)" on the fourth line stores a byte value stored in the memory area indicated by the address of the HL register in the C register, and stores a byte value stored in the memory area indicated by the address obtained by adding "1" to the HL register in the A register. The command "OUT (C), A" on the fifth line outputs the value of the A register (setting data) to the memory area (built-in register) indicated by the address of the C register.

例えば、HLレジスタがアドレス「T_CPU_REG」の値であった場合、図244の3行目における1バイト値「@PT0PR__」がCレジスタに格納され、図244の4行目における1バイト値「160」がAレジスタに格納される。そして、Cレジスタのシンボル「@PT0PR__」で示されるメモリ領域に、Aレジスタの値「160」が出力される。 For example, if the HL register is the value of address "T_CPU_REG", the 1-byte value "@PT0PR___" on the third line of FIG. 244 is stored in the C register, and the 1-byte value "160" on the fourth line of FIG. 244 is stored in the A register. Then, the value of the A register, "160", is output to the memory area indicated by the C register symbol "@PT0PR___".

続いて、図243の6行目のコマンド「DJNZ INITIAL01」によって、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0でなければ、3行目の指標「INITIAL01」に移動し、デクリメントした結果が0であれば、当該コマンドの次のコマンドに処理を移す。ここでは、データ数が「15」なので、指標「INITIAL01」からの処理を15回繰り返すとBレジスタの値が0となる。 Next, the command "DJNZ INITIAL01" on line 6 of Figure 243 decrements the value of the B register (subtracts "1"), and if the result of the decrement is not 0, it moves to the index "INITIAL01" on line 3, and if the result of the decrement is 0, it moves to the next command after that command. In this case, the number of data items is "15", so if the process from the index "INITIAL01" is repeated 15 times, the value of the B register will become 0.

このように、図243に示した初期設定処理のコマンドの総コマンドサイズは、1行目のコマンド「LD HL,T_CPU_REG」3バイト+2行目のコマンド「LD B,@NUM_CPU_REG」2バイト+4行目のコマンド「LDIN AC,(HL)」2バイト+5行目のコマンド「OUT (C),A」2バイト+6行目のコマンド「DJNZ INITIAL01」2バイト=11バイトとなる。 Thus, the total command size of the commands in the initial setting process shown in Figure 243 is 3 bytes for the command "LD HL, T_CPU_REG" on the first line + 2 bytes for the command "LD B, @NUM_CPU_REG" on the second line + 2 bytes for the command "LDIN AC, (HL)" on the fourth line + 2 bytes for the command "OUT (C), A" on the fifth line + 2 bytes for the command "DJNZ INITIAL01" on the sixth line = 11 bytes.

上述したように、本実施形態では、入出力部704のアドレス空間を、メインROM500bおよびメインRAM500cのアドレス空間と一体化している。したがって、メインCPU500aは、メモリ空間のFE00h~FFFFhのアドレスを通じて入出力部704にアクセスする。この場合、入出力部704を割り当てることができるメモリ空間が512バイトとなる。このようにメモリ空間が増えることで、割り当てられる入出力部704の数も増やすことができる。その一方で、メモリ空間が256バイトより大きくなるので、入出力部704を特定するためのアドレスとして2バイトを要することとなる。例えば、本実施形態においては、予め、一部の入出力部704がメモリ空間の256バイトの領域であるFE00h~FEFFhに割り当てられ、他の入出力部704がメモリ空間の256バイトの領域であるFF00h~FFFFhに割り当てられている。したがって、メインCPU500aは、アドレスの上位バイトが異なる入出力部704にアクセスする度、Uレジスタの値を「FEH」と「FFH」との間で変更しなければならない。ここでは、図243で示した初期設定処理を、Uレジスタを用いて実現する他の実施例を説明する。 As described above, in this embodiment, the address space of the input/output unit 704 is integrated with the address space of the main ROM 500b and the main RAM 500c. Therefore, the main CPU 500a accesses the input/output unit 704 through the addresses FE00h to FFFFh in the memory space. In this case, the memory space to which the input/output unit 704 can be assigned is 512 bytes. By increasing the memory space in this way, the number of input/output units 704 that can be assigned can also be increased. On the other hand, since the memory space becomes larger than 256 bytes, 2 bytes are required as an address to specify the input/output unit 704. For example, in this embodiment, some of the input/output units 704 are assigned in advance to the 256-byte area of the memory space FE00h to FEFFh, and other input/output units 704 are assigned to the 256-byte area of the memory space FF00h to FFFFh. Therefore, each time the main CPU 500a accesses an I/O unit 704 with a different upper byte of the address, it must change the value of the U register between "FEH" and "FFH." Here, we will explain another embodiment in which the initial setting process shown in FIG. 243 is realized using the U register.

図245は、CPU初期化処理を実現するためのコマンド群の一部の他の例を示した図であり、図246は、CPU初期化処理で参照するテーブルの他の例を示した図である。ここでは、メインCPU500aは、図243、図244同様、説明の便宜上、I/OマップドI/O方式によって入出力部704(内蔵レジスタ)に設定データを設定している。 Figure 245 shows another example of part of the command group for realizing CPU initialization processing, and Figure 246 shows another example of a table referenced in CPU initialization processing. Here, as in Figures 243 and 244, for the sake of convenience, the main CPU 500a sets configuration data in the input/output unit 704 (built-in register) using the I/O mapped I/O method.

図245の1行目のコマンド「LDF HL,T_CPU_REG」によって、図246のCPU内蔵レジスタ設定データテーブルのデータ群の先頭アドレス「T_CPU_REG」がHLレジスタに設定される。2行目のコマンド「LD B,@NUM_CPU_RG1」によって、シンボル「@NUM_CPU_RG1」自体がBレジスタに設定される。 The command "LDF HL, T_CPU_REG" on the first line of Fig. 245 sets the top address "T_CPU_REG" of the data group in the CPU built-in register setting data table of Fig. 246 in the HL register. The command "LD B, @NUM_CPU_RG1" on the second line sets the symbol "@NUM_CPU_RG1" itself in the B register.

なお、図246のCPU内蔵レジスタ設定データテーブルの42行目を参照して理解できるように、シンボル「@NUM_CPU_RG1」には、コマンド「EQU ($-T_CPU_REG)/2」が記載されている。ここで、「$」は、シンボル「@NUM_CPU_RG1」自体であり、「T_CPU_REG」は転送元となるデータ群の先頭アドレスなので、$-T_CPU_REGの値が、データ数を示す1バイト値の総バイト数となり、その値を、アドレスと値との組み合わせ数である2で除算すると、設定データ数が導出される。例えば、図246の例では、設定データ数は26/2=13となる。 As can be seen by referring to the 42nd row of the CPU internal register setting data table in FIG. 246, the symbol "@NUM_CPU_RG1" contains the command "EQU ($-T_CPU_REG)/2". Here, "$" is the symbol "@NUM_CPU_RG1" itself, and "T_CPU_REG" is the first address of the data group that is the transfer source, so the value of $-T_CPU_REG is the total number of bytes of the 1-byte value indicating the number of data, and by dividing this value by 2, which is the number of combinations of addresses and values, the number of set data is derived. For example, in the example in FIG. 246, the number of set data is 26/2=13.

図245の3行目のコマンド「LD U,0FEH」によって、入出力部704を示すアドレスの上位バイトとなる「FEH」をUレジスタに設定する。ここでは、複数の入出力部704を示すアドレスの上位アドレスとして2つの値「FEH」、「FFH」が準備されており、メインCPU500aは、アクセス対象となる入出力部704に応じて、その都度、上位バイトとなるUレジスタの値を変更する。なお、Uレジスタの初期値は「FFH」である。ここでは、まず、Uレジスタに「FEH」を設定し(「FFH」を「FEH」に変更し)、上位アドレスが「FEH」となる入出力部704に関して設定データを設定する。 The command "LD U,0FEH" on the third line of FIG. 245 sets "FEH" in the U register, which is the upper byte of the address indicating the input/output unit 704. Here, two values "FEH" and "FFH" are prepared as the upper addresses of the addresses indicating the multiple input/output units 704, and the main CPU 500a changes the value of the U register, which is the upper byte, each time depending on the input/output unit 704 to be accessed. The initial value of the U register is "FFH". Here, first "FEH" is set in the U register (changing "FFH" to "FEH"), and setting data is set for the input/output unit 704 whose upper address is "FEH".

図245の4行目の指標「INITIAL01」は繰り返し処理の先頭アドレスを示す。5行目のコマンド「LDIN AC,(HL)」によって、HLレジスタのアドレスで示されるメモリ領域に格納された値がCレジスタに格納され、HLレジスタに「1」を加えた値のアドレスで示されるメモリ領域に格納された値がAレジスタに格納される。6行目のコマンド「OUT (C),A」によって、Cレジスタのアドレスで示されるメモリ領域(内蔵レジスタ)に、Aレジスタの値(設定データ)が出力される。 The index "INITIAL01" on the fourth line of Figure 245 indicates the start address of the repeat process. The command "LDIN AC, (HL)" on the fifth line stores the value stored in the memory area indicated by the address of the HL register in the C register, and stores the value stored in the memory area indicated by the address obtained by adding "1" to the value of the HL register in the A register. The command "OUT (C), A" on the sixth line outputs the value of the A register (setting data) to the memory area (built-in register) indicated by the address of the C register.

例えば、HLレジスタがアドレス「T_CPU_REG」の値であった場合、図246の3行目における1バイト値「@PT0PR__」(例えば「01H」)がCレジスタに格納され、図246の4行目における1バイト値「160」がAレジスタに格納される。そして、Cレジスタのシンボル「@PT0PR__」で示されるメモリ領域に、Aレジスタの値「160」が出力される。 For example, if the HL register is the value of address "T_CPU_REG", the 1-byte value "@PT0PR___" (e.g., "01H") on the third line of FIG. 246 is stored in the C register, and the 1-byte value "160" on the fourth line of FIG. 246 is stored in the A register. Then, the value of the A register, "160", is output to the memory area indicated by the C register symbol "@PT0PR___".

図245の7行目のコマンド「DJNZ INITIAL01」によって、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0でなければ、4行目の指標「INITIAL01」に移動し、デクリメントした結果が0であれば、当該コマンドの次のコマンドに処理を移す。ここでは、データ数が「13」なので、指標「INITIAL01」からの処理を13回繰り返すとBレジスタの値が0となる。こうして、図246の前段における13の入出力部704に関して設定データの設定が完了する。 The command "DJNZ INITIAL01" on line 7 of Figure 245 decrements the value of the B register (subtracts "1"), and if the result of the decrement is not 0, it moves to the index "INITIAL01" on line 4, and if the result of the decrement is 0, it moves to the next command after that command. In this case, the number of data items is "13", so the value of the B register becomes 0 after repeating the process from the index "INITIAL01" 13 times. In this way, the setting of the configuration data for the 13 input/output units 704 in the first row of Figure 246 is completed.

図245の8行目のコマンド「LD U,0FFH」によって、入出力部704を示すアドレスの上位バイトとなる「FFH」をUレジスタに設定する。上述したように、入出力部704を示すアドレスとして2つの値「FEH」、「FFH」のうち、上位アドレスが「FEH」となる入出力部704に関して設定データの設定が完了しているので、ここでは、Uレジスタに「FFH」を設定し、上位アドレスが「FFH」となる入出力部704に関して設定データを設定する。なお、Uレジスタに「FFH」を設定することで、Uレジスタを初期値に戻すこととなる。 The command "LD U, 0FFH" on line 8 of FIG. 245 sets "FFH" in the U register, which is the upper byte of the address indicating the input/output unit 704. As described above, of the two values "FEH" and "FFH" that indicate the address of the input/output unit 704, setting of the configuration data for the input/output unit 704 whose upper address is "FEH" has been completed, so here, "FFH" is set in the U register, and configuration data is set for the input/output unit 704 whose upper address is "FFH". Note that setting "FFH" in the U register resets the U register to its initial value.

図245の9行目のコマンド「LD B,@NUM_CPU_RG2」によって、シンボル「@NUM_CPU_RG2」自体がBレジスタに設定される。なお、図246のCPU内蔵レジスタ設定データテーブルの50行目を参照して理解できるように、シンボル「@NUM_CPU_RG2」には、コマンド「EQU ($-T_CPU_REG)/2-@NUM_CPU_RG1」が記載されている。ここで、「$」は、シンボル「@NUM_CPU_RG2」自体であり、「T_CPU_REG」は転送元となる1バイトデータ群の先頭アドレスなので、$-T_CPU_REGの値は30/2=15であり、「@NUM_CPU_RG1」は13なので、図246の例では、設定データ数は15-13=2となる。 The command "LD B, @NUM_CPU_RG2" on line 9 of Figure 245 sets the symbol "@NUM_CPU_RG2" itself in the B register. As can be understood by referring to line 50 of the CPU built-in register setting data table in Figure 246, the command "EQU ($-T_CPU_REG)/2-@NUM_CPU_RG1" is written in the symbol "@NUM_CPU_RG2". Here, "$" is the symbol "@NUM_CPU_RG2" itself, and "T_CPU_REG" is the first address of the 1-byte data group that is the transfer source, so the value of $-T_CPU_REG is 30/2=15, and "@NUM_CPU_RG1" is 13, so in the example of Figure 246, the number of set data is 15-13=2.

図245の10行目の指標「INITIAL02」は繰り返し処理の先頭アドレスを示す。11行目のコマンド「LDIN AC,(HL)」によって、HLレジスタのアドレスで示されるメモリ領域に格納された値がCレジスタに格納され、HLレジスタに「1」を加えた値のアドレスで示されるメモリ領域に格納された値がAレジスタに格納される。12行目のコマンド「OUT (C),A」によって、Cレジスタのアドレスで示されるメモリ領域(内蔵レジスタ)に、Aレジスタの値(設定データ)が出力される。 The index "INITIAL02" on line 10 of Figure 245 indicates the start address of the repeat process. The command "LDIN AC, (HL)" on line 11 stores the value stored in the memory area indicated by the address of the HL register in the C register, and stores the value stored in the memory area indicated by the address obtained by adding "1" to the value of the HL register in the A register. The command "OUT (C), A" on line 12 outputs the value of the A register (setting data) to the memory area (built-in register) indicated by the address of the C register.

例えば、HLレジスタがシンボル「@NUM_CPU_RG1」自体であった場合、図246の44行目における1バイト値「@S1CM___」(例えば「2CH」)がCレジスタに格納され、図246の45行目における1バイト値「10000000B」がAレジスタに格納される。そして、Cレジスタのシンボル「@S1CM___」で示されるメモリ領域に、Aレジスタの値「10000000B」が出力される。 For example, if the HL register is the symbol "@NUM_CPU_RG1" itself, the 1-byte value "@S1CM___" (e.g., "2CH") on line 44 of FIG. 246 is stored in the C register, and the 1-byte value "10000000B" on line 45 of FIG. 246 is stored in the A register. Then, the value of the A register, "10000000B", is output to the memory area indicated by the symbol "@S1CM___" in the C register.

続いて、図245の13行目のコマンド「DJNZ INITIAL02」によって、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0でなければ、10行目の指標「INITIAL02」に移動し、デクリメントした結果が0であれば、当該コマンドの次のコマンドに処理を移す。ここでは、データ数が「2」なので、指標「INITIAL02」からの処理を2回繰り返すとBレジスタの値が0となる。こうして、図246の後段における2の入出力部704に関して設定データの設定が完了する。 Next, the command "DJNZ INITIAL02" on line 13 of Figure 245 decrements the value of the B register (subtracts "1"), and if the result of the decrement is not 0, it moves to the index "INITIAL02" on line 10, and if the result of the decrement is 0, it moves to the next command after that command. In this case, the amount of data is "2", so repeating the process from the index "INITIAL02" twice will set the value of the B register to 0. In this way, the setting of the configuration data for the input/output unit 704 number 2 in the latter part of Figure 246 is completed.

このように、図245に示した初期設定処理のコマンドの総コマンドサイズは、1行目のコマンド「LDF HL,T_CPU_REG」2バイト+2行目のコマンド「LD B,@NUM_CPU_RG1」2バイト+3行目のコマンド「LD U,0FEH」3バイト+5行目のコマンド「LDIN AC,(HL)」2バイト+6行目のコマンド「OUT (C),A」2バイト+7行目のコマンド「DJNZ INITIAL01」2バイト+8行目のコマンド「LD U,0FFH」3バイト+9行目のコマンド「LD B,@NUM_CPU_RG2」2バイト+11行目のコマンド「LDIN AC,(HL)」2バイト+12行目のコマンド「OUT (C),A」2バイト+13行目のコマンド「DJNZ INITIAL02」2バイト=24バイトとなる。 In this way, the total command size of the commands in the initial setting process shown in Figure 245 is 2 bytes of the command "LDF HL, T_CPU_REG" on the 1st line + 2 bytes of the command "LD B, @NUM_CPU_RG1" on the 2nd line + 3 bytes of the command "LD U, 0FEH" on the 3rd line + 2 bytes of the command "LDIN AC, (HL)" on the 5th line + 2 bytes of the command "OUT (C), A" on the 6th line + 2 bytes of the command "DJNZ INITIAL01" on the 7th line + 3 bytes of the command "LD U, 0FFH" on the 8th line + 2 bytes of the command "LD B, @NUM_CPU_RG2" on the 9th line + 2 bytes of the command "LDIN AC, (HL)" on the 11th line + 2 bytes of the command "OUT (C), A" on the 12th line + 2 bytes of the command "DJNZ INITIAL02" on the 13th line = 24 bytes.

ここでは、複数の入出力部704にアクセスするためにUレジスタを変更しなければならないので、その分、図243の例と比べて総コマンドサイズが大きくなる。ただし、上述したように、プログラムのうちの一部の処理においては、I/OマップドI/O方式ではなくメモリマップドI/O方式の命令を利用した方が、コマンドサイズが小さくなる場合がある。そこで、一部の処理にメモリマップドI/O方式を適用する例を挙げて説明する。 Here, the U register must be changed to access multiple input/output units 704, so the total command size is larger than in the example of Figure 243. However, as mentioned above, in some processes within a program, the command size may be smaller if memory-mapped I/O instructions are used instead of I/O-mapped I/O instructions. Therefore, an example in which the memory-mapped I/O method is applied to some processes will be explained.

図247は、CPU初期化処理を実現するためのコマンド群の一部の他の例を示した図である。ここでは、メインCPU500aは、図243、図245と異なり、メモリマップドI/O方式によって入出力部704(内蔵レジスタ)に設定データを設定している。なお、CPU初期化処理で参照するCPU内蔵レジスタ設定データテーブルは、図246のCPU内蔵レジスタ設定データテーブルをそのまま用いることができるので、図246を用いて説明する。 Figure 247 shows another example of part of the command group for realizing CPU initialization processing. Here, unlike Figures 243 and 245, the main CPU 500a sets configuration data in the input/output unit 704 (built-in register) using the memory-mapped I/O method. Note that the CPU built-in register setting data table referenced in the CPU initialization processing can use the CPU built-in register setting data table in Figure 246 as is, so it will be explained using Figure 246.

図247の1行目のコマンド「LDF HL,T_CPU_REG」によって、図246のCPU内蔵レジスタ設定データテーブル(転送情報が含まれるテーブル)のデータ群の先頭アドレス「T_CPU_REG」がHLレジスタ(第2レジスタ)に設定される。2行目のコマンド「LD B,@NUM_CPU_RG1」によって、シンボル「@NUM_CPU_RG1」自体(転送する数)がBレジスタ(第1レジスタ)に設定される。 The command "LDF HL, T_CPU_REG" on the first line of Fig. 247 sets the top address "T_CPU_REG" of the data group in the CPU built-in register setting data table (table containing transfer information) in Fig. 246 in the HL register (second register). The command "LD B, @NUM_CPU_RG1" on the second line sets the symbol "@NUM_CPU_RG1" itself (the number to be transferred) in the B register (first register).

なお、図246のCPU内蔵レジスタ設定データテーブルの42行目を参照して理解できるように、シンボル「@NUM_CPU_RG1」には、コマンド「EQU ($-T_CPU_REG)/2」が記載されている。ここで、$-T_CPU_REGの値が、データ数を示す1バイト値の総バイト数となり、その値を、アドレスと値との組み合わせ数である2で除算すると、設定データ数は26/2=13となる。 As can be seen by looking at the 42nd line of the CPU internal register setting data table in Figure 246, the symbol "@NUM_CPU_RG1" contains the command "EQU ($-T_CPU_REG)/2". Here, the value of $-T_CPU_REG is the total number of bytes in the 1-byte value indicating the number of data items, and when this value is divided by 2, which is the number of combinations of addresses and values, the number of set data items becomes 26/2 = 13.

図247の3行目のコマンド「LD Q,HIGH @PTOPR__」によって、シンボル「@PTOPR__」の上位バイトの値(「FEH」)がQレジスタに設定される。ここでは、メモリマップドI/O方式で入出力部704にアクセスするため、Uレジスタではなく、QHレジスタに入出力部704の上位バイトを設定している。上述したように、入出力部704を示すアドレスとして2つの値「FEH」、「FFH」が準備されており、メインCPU500aは、アクセス対象となる入出力部704に応じて、その都度、上位バイトとなるQレジスタの値を変更している。なお、Qレジスタの初期値はメインRAM500cの先頭アドレスに相当する「F0H」である。ここでは、まず、Qレジスタ(第3レジスタ)に「FEH」を設定し、上位アドレスが「FEH」となる入出力部704に関して設定データを設定する。 The command "LD Q, HIGH @PTOPR___" on the third line of FIG. 247 sets the value of the upper byte of the symbol "@PTOPR___" ("FEH") in the Q register. Here, since the input/output unit 704 is accessed using the memory-mapped I/O method, the upper byte of the input/output unit 704 is set in the QH register instead of the U register. As described above, two values "FEH" and "FFH" are prepared as addresses indicating the input/output unit 704, and the main CPU 500a changes the value of the Q register, which is the upper byte, each time depending on the input/output unit 704 to be accessed. The initial value of the Q register is "F0H", which corresponds to the top address of the main RAM 500c. Here, "FEH" is first set in the Q register (third register), and setting data is set for the input/output unit 704 whose upper address is "FEH".

図247の4行目のコマンド「LDINTQR (HL)」によって、Qレジスタの値を転送先アドレスの上位1バイトとし、HLレジスタのアドレスで示されるメモリ領域に格納された値を転送先アドレスの下位1バイトとし、HLレジスタの値に「1」を加えた値のアドレスで示されるメモリ領域に格納された値が、転送先アドレスで示されるメモリ領域に転送され、HLレジスタの値に「2」を加えて次に転送するアドレスが更新され、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0になるまで、すなわち、設定データである13回だけ当該処理が繰り返される。こうして、図246の前段における13の入出力部704に関して設定データの設定が完了する。かかるLDINTQR命令では、Bレジスタ、HLレジスタ、Qレジスタ以外のレジスタ、例えば、Aレジスタを用いることなく処理が実行される。 The command "LDINTQR (HL)" on the fourth line of FIG. 247 sets the value of the Q register to the upper byte of the destination address, sets the value stored in the memory area indicated by the address of the HL register to the lower byte of the destination address, transfers the value stored in the memory area indicated by the address of the value of the HL register plus "1" to the memory area indicated by the destination address, adds "2" to the value of the HL register to update the next transfer address, decrements the value of the B register (subtracts "1"), and repeats the process until the decremented result becomes 0, that is, 13 times, which is the set data. In this way, the setting of the setting data for the 13 input/output units 704 in the first stage of FIG. 246 is completed. With this LDINTQR command, processing is executed without using registers other than the B register, HL register, and Q register, such as the A register.

図247の5行目のコマンド「LD B,@NUM_CPU_RG2」によって、シンボル「@NUM_CPU_RG2」自体(転送する数)がBレジスタ(第1レジスタ)に設定される。なお、図246のCPU内蔵レジスタ設定データテーブルの50行目を参照して理解できるように、シンボル「@NUM_CPU_RG2」には、コマンド「EQU ($-T_CPU_REG)/2-@NUM_CPU_RG1」が記載されている。ここで、$-T_CPU_REGの値(データ数を示す1バイト値)の値は30/2=15であり、「@NUM_CPU_RG1」は13なので、図246の例では、設定データ数は15-13=2となる。 The symbol "@NUM_CPU_RG2" itself (the number to be transferred) is set in the B register (first register) by the command "LD B, @NUM_CPU_RG2" on the fifth line of Fig. 247. As can be understood by referring to the 50th line of the CPU built-in register setting data table in Fig. 246, the command "EQU ($-T_CPU_REG)/2-@NUM_CPU_RG1" is written in the symbol "@NUM_CPU_RG2". Here, the value of $-T_CPU_REG (a 1-byte value indicating the number of data) is 30/2=15, and "@NUM_CPU_RG1" is 13, so in the example of Fig. 246, the number of set data is 15-13=2.

図247の6行目のコマンド「LD Q,HIGH @S2CMS__」によって、シンボル「@S2CMS__」の上位バイトの値(「FFH」)がQレジスタ(第3レジスタ)に設定される。ここでも、メモリマップドI/O方式で入出力部704にアクセスするため、Uレジスタではなく、QHレジスタに入出力部704の上位バイトを設定している。なお、上述したように、入出力部704を示すアドレスとして2つの値「FEH」、「FFH」のうち、上位アドレスが「FEH」となる入出力部704に関して設定データの設定が完了しているので、ここでは、Qレジスタに「FFH」を設定し、上位アドレスが「FFH」となる入出力部704に関して設定データを設定する。 The command "LD Q, HIGH @S2CMS___" on line 6 of FIG. 247 sets the value of the upper byte of the symbol "@S2CMS___" ("FFH") in the Q register (third register). Here too, to access the input/output unit 704 using the memory-mapped I/O method, the upper byte of the input/output unit 704 is set in the QH register instead of the U register. As described above, of the two values "FEH" and "FFH" that indicate the input/output unit 704, setting of the configuration data has been completed for the input/output unit 704 whose upper address is "FEH", so here "FFH" is set in the Q register, and setting of the configuration data for the input/output unit 704 whose upper address is "FFH".

図247の7行目のコマンド「LDINTQR (HL)」によって、Qレジスタの値を転送先アドレスの上位1バイトとし、HLレジスタ(第2レジスタ)のアドレスで示されるメモリ領域に格納された値を転送先アドレスの下位1バイトとし、HLレジスタの値に「1」を加えた値のアドレスで示されるメモリ領域に格納された値が、転送先アドレスで示されるメモリ領域に転送され、HLレジスタの値に「2」を加えて次に転送するアドレスが更新され、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0になるまで、すなわち、設定データである2回だけ当該処理が繰り返される。こうして、図246の後段における2の入出力部704に関して設定データの設定が完了する。かかるLDINTQR命令では、Bレジスタ、HLレジスタ、Qレジスタ以外のレジスタ、例えば、Aレジスタを用いることなく処理が実行される。 The command "LDINTQR (HL)" on the seventh line of FIG. 247 sets the value of the Q register to the upper byte of the destination address, sets the value stored in the memory area indicated by the address of the HL register (second register) to the lower byte of the destination address, transfers the value stored in the memory area indicated by the address of the value of the HL register plus "1" to the memory area indicated by the destination address, adds "2" to the value of the HL register to update the next transfer address, decrements the value of the B register (subtracts "1"), and repeats the process until the decremented result becomes 0, that is, twice, which is the set data. In this way, the setting of the setting data for the input/output unit 704 of 2 in the latter part of FIG. 246 is completed. With this LDINTQR command, the process is executed without using registers other than the B register, HL register, and Q register, such as the A register.

そして、図247の8行目のコマンド「LD Q、HIGH @RAM_BGN_ADR」によって、シンボル「@RAM_BGN_ADR」の上位バイトの値がQレジスタに設定される。こうして、Qレジスタの値を初期値「F0H」に復帰させる。 Then, the command "LD Q, HIGH @RAM_BGN_ADR" on line 8 of Figure 247 sets the value of the upper byte of the symbol "@RAM_BGN_ADR" to the Q register. In this way, the value of the Q register is restored to its initial value "F0H".

このように、図247に示した初期設定処理のコマンドの総コマンドサイズは、1行目のコマンド「LDF HL,T_CPU_REG」2バイト+2行目のコマンド「LD B,@NUM_CPU_RG1」2バイト+3行目のコマンド「LD Q,HIGH @PTOPR__」2バイト+4行目のコマンド「LDINTQR (HL)」2バイト+5行目のコマンド「LD B,@NUM_CPU_RG2」2バイト+6行目のコマンド「LD Q,HIGH @S2CMS__」2バイト+7行目のコマンド「LDINTQR (HL)」2バイト+コマンド「LD Q、HIGH @RAM_BGN_ADR」1バイト=15バイトとなる。 Thus, the total command size of the commands in the initial setting process shown in Figure 247 is 2 bytes of the command "LDF HL, T_CPU_REG" on the first line + 2 bytes of the command "LD B, @NUM_CPU_RG1" on the second line + 2 bytes of the command "LD Q, HIGH @PTOPR___" on the third line + 2 bytes of the command "LDINTQR (HL)" on the fourth line + 2 bytes of the command "LD B, @NUM_CPU_RG2" on the fifth line + 2 bytes of the command "LD Q, HIGH @S2CMS___" on the sixth line + 2 bytes of the command "LDINTQR (HL)" on the seventh line + 1 byte of the command "LD Q, HIGH @RAM_BGN_ADR" = 15 bytes.

ここでは、図245のI/OマップドI/O方式を、図247のようにメモリマップドI/O方式に変更し、それに伴ってLDINTQR命令を利用することが可能となる。そうすると、図245の初期設定処理のコマンドの総コマンドサイズが24バイトであるのに対し、図247の初期設定処理のコマンドの総コマンドサイズが15バイトとなるので9バイトの削減が可能となる。このように、メモリマップドI/O方式によるLDINTQR命令を利用することによって、コマンドの短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the I/O mapped I/O method in FIG. 245 is changed to a memory mapped I/O method as in FIG. 247, which makes it possible to use the LDINTQR command. In this way, the total command size of the commands in the initial setting process in FIG. 245 is 24 bytes, while the total command size of the commands in the initial setting process in FIG. 247 is 15 bytes, making it possible to reduce 9 bytes. In this way, by using the LDINTQR command with the memory mapped I/O method, it is possible to shorten the commands and ensure the capacity of the control area for performing game control processing.

<メモリマップドI/O方式の利用例2>
図248は、出力ポートのアドレスを示した説明図であり、図249は、電源断時退避処理を実現するためのコマンド群の一部を示した図である。ここでは、説明の便宜上、電源断時退避処理S3000のうちの出力ポートクリア処理(図25のステップS300-11、および、図97のステップS3000-11)を説明する。出力ポートクリア処理では、出力ポートの出力を0にクリアする。なお、ここでは、メインCPU500aが出力ポートクリア処理S3000-11を実行する例を挙げる。
<Memory Mapped I/O Method Usage Example 2>
Fig. 248 is an explanatory diagram showing the addresses of output ports, and Fig. 249 is a diagram showing a part of a group of commands for realizing the power-off save process. For the sake of convenience, the output port clear process (step S300-11 in Fig. 25 and step S3000-11 in Fig. 97) of the power-off save process S3000 will be explained here. In the output port clear process, the output of the output port is cleared to 0. Note that here, an example is given in which the main CPU 500a executes the output port clear process S3000-11.

本実施形態では入出力部704として、出力ポート0~8の合計9つの出力ポートが準備されている。出力ポート0~8では、ビット単位でそれぞれ離散信号(Hi(ハイレベル)とLow(ローレベル)の2値)を連続的に出力することができる。なお、出力ポートクリア処理の対象は、出力ポート0~8のうち、出力ポート0~4、7の合計6つの出力ポートに限られる。したがって、出力ポートクリア処理では、出力ポート0~4、7をクリアしている。 In this embodiment, a total of nine output ports, output ports 0 to 8, are provided as the input/output unit 704. Output ports 0 to 8 can continuously output discrete signals (two values, Hi (high level) and Low (low level)) in bit units. Note that the target of the output port clear process is limited to a total of six output ports, output ports 0 to 4 and 7, out of output ports 0 to 8. Therefore, output ports 0 to 4 and 7 are cleared in the output port clear process.

図248を参照すると、メモリ空間上のアドレス「FFF0H」に出力ポート4が割り当てられ、アドレス「FFF1H」に出力ポート3が割り当てられ、アドレス「FFF2H」に出力ポート2が割り当てられ、アドレス「FFF3H」に出力ポート1が割り当てられ、アドレス「FFF4H」に出力ポート0が割り当てられ、アドレス「FFF5H」に出力ポート7が割り当てられている。 Referring to FIG. 248, output port 4 is assigned to address "FFF0H" in the memory space, output port 3 is assigned to address "FFF1H", output port 2 is assigned to address "FFF2H", output port 1 is assigned to address "FFF3H", output port 0 is assigned to address "FFF4H", and output port 7 is assigned to address "FFF5H".

図249の出力ポートクリア処理は、Aレジスタに「0」が設定されている場合にのみ遂行される処理であり、出力ポートクリア処理が実行されるときには、既にAレジスタに「0」が設定されていることとなる。図249の1行目のコマンド「LD BC,6*256+@OUT_PRT_7」によって、Bレジスタに出力ポート数である6が設定され、Cレジスタに出力ポート7を示す下位1バイトのアドレス値が設定される。なお、図248に示したように、出力ポート7を示す下位1バイトの値は「F5H」である。3行目のコマンド「OUT (C),A」によって、Uレジスタの値(ここでは初期値である「FFH」)をアドレスの上位1バイトとし、Cレジスタの値を下位1バイトとし、そのアドレスが示すメモリ領域に、Aレジスタの値(「0」)が出力される。 The output port clear process in Figure 249 is performed only when "0" is set in the A register, and when the output port clear process is executed, "0" has already been set in the A register. The command "LD BC,6*256+@OUT_PRT_7" on the first line of Figure 249 sets the number of output ports, 6, in the B register, and sets the address value of the lowest byte indicating output port 7 in the C register. As shown in Figure 248, the value of the lowest byte indicating output port 7 is "F5H". The command "OUT (C), A" on the third line sets the value of the U register (here, the initial value "FFH") to the highest byte of the address, the value of the C register to the lowest byte, and the value of the A register ("0") is output to the memory area indicated by that address.

図249の4行目のコマンド「DEC C」によって、Cレジスタで示されるアドレスに格納された値が1だけデクリメントされる。5行目のコマンド「DJNZ PRFPROC02」によって、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0でなければ、2行目の指標「PRFPROC02」に移動し、デクリメントした結果が0であれば、当該コマンドの次のコマンドに処理を移す。ここでは、出力ポート数が「6」なので、指標「PRFPROC02」からの処理を6回繰り返すとBレジスタの値が0となる。 The command "DEC C" on the fourth line of Figure 249 decrements the value stored at the address indicated by the C register by 1. The command "DJNZ PRFPROC02" on the fifth line decrements the value of the B register (subtracts "1"), and if the result of the decrement is not 0, it moves to the index "PRFPROC02" on the second line, and if the result of the decrement is 0, it moves to the next command after that command. In this case, the number of output ports is "6", so if the process from the index "PRFPROC02" is repeated six times, the value of the B register will become 0.

こうして、入出力部704のアドレスが「FFF5H」→「FFF4H」→「FFF3H」→「FFF2H」→「FFF1H」→「FFF0H」とデクリメントされ、それに伴って出力ポート7→出力ポート0→出力ポート1→出力ポート2→出力ポート3→出力ポート4の順で出力ポートの各ビットが0に設定される。 In this way, the address of input/output unit 704 is decremented from "FFF5H" → "FFF4H" → "FFF3H" → "FFF2H" → "FFF1H" → "FFF0H", and accordingly, each bit of the output port is set to 0 in the order of output port 7 → output port 0 → output port 1 → output port 2 → output port 3 → output port 4.

このように、図249に示した出力ポートクリア処理のコマンドの総コマンドサイズは、1行目のコマンド「LD BC,6*256+@OUT_PRT_7」3バイト+3行目のコマンド「OUT (C),A」2バイト+4行目のコマンド「DEC C」1バイト+5行目のコマンド「DJNZ PRFPROC02」2バイト=8バイトとなる。 In this way, the total command size of the output port clear processing command shown in Figure 249 is 3 bytes of the command "LD BC, 6*256+@OUT_PRT_7" on the first line + 2 bytes of the command "OUT (C), A" on the third line + 1 byte of the command "DEC C" on the fourth line + 2 bytes of the command "DJNZ PRFPROC02" on the fifth line = 8 bytes.

上述したように、プログラムのうちの一部の処理においては、I/OマップドI/O方式ではなくメモリマップドI/O方式の命令を利用した方が、コマンドサイズが小さくなる場合がある。そこで、一部の処理にメモリマップドI/O方式を適用する例を挙げて説明する。 As mentioned above, in some processes within a program, the command size may be smaller if memory-mapped I/O instructions are used instead of I/O-mapped I/O instructions. Therefore, we will explain an example in which memory-mapped I/O is applied to some processes.

図250は、電源断時退避処理を実現するためのコマンド群の一部の他の例を示した図である。ここで、メインCPU500aは、メモリマップドI/O方式によって、出力ポートの出力を0にクリアしている。 Figure 250 shows another example of a portion of the command group for implementing the power-off evacuation process. Here, the main CPU 500a clears the output of the output port to 0 using the memory-mapped I/O method.

図250の1行目のコマンド「LD HL,@OUT_PRT_4」によって、出力ポート4を示す2バイトのシンボル「@OUT_PRT_4」自体(出力ポートの情報)をHLレジスタ(第2レジスタ)に設定する。なお、図248に示したように、出力ポート4を示す2バイトの値は「FFF0H」となっている。2行目のコマンド「LD B,6」によって、Bレジスタ(第1レジスタ)にクリア対象となる出力ポート数(クリアする数)である6が設定される。 The command "LD HL, @OUT_PRT_4" on the first line of Fig. 250 sets the 2-byte symbol "@OUT_PRT_4" itself (output port information) indicating output port 4 in the HL register (second register). As shown in Fig. 248, the value of the 2 bytes indicating output port 4 is "FFF0H". The command "LD B, 6" on the second line sets 6, which is the number of output ports to be cleared (the number to be cleared), in the B register (first register).

図250の3行目のコマンド「CLRIRS」によって、HLレジスタのアドレスで示されるメモリ領域に「0」が格納され(出力ポートがクリアされ)、HLレジスタの値に「1」を加えて次にクリアされるアドレスが更新され、Bレジスタの値がデクリメント(「1」減算)され、デクリメントした結果が0になるまで、すなわち、クリア対象となる出力ポート数である6回だけ当該処理が繰り返される。かかるCLRIRS命令では、Bレジスタ、HLレジスタ以外のレジスタ、例えば、Aレジスタを用いることなく処理が実行される。 The command "CLRIRS" on the third line of Figure 250 stores "0" in the memory area indicated by the address of the HL register (clearing the output port), adds "1" to the value of the HL register to update the next address to be cleared, and decrements the value of the B register (subtracts "1"), repeating this process until the decrement result becomes 0, i.e., six times, which is the number of output ports to be cleared. With this CLRIRS command, processing is executed without using any registers other than the B register and HL register, such as the A register.

こうして、入出力部704のアドレスが「FFF0H」→「FFF1H」→「FFF2H」→「FFF3H」→「FFF4H」→「FFF5H」とインクリメントされ、それに伴って出力ポート4→出力ポート3→出力ポート2→出力ポート1→出力ポート0→出力ポート7の順で出力ポートの出力が0に設定される。 In this way, the address of the input/output unit 704 is incremented from "FFF0H" → "FFF1H" → "FFF2H" → "FFF3H" → "FFF4H" → "FFF5H", and the output of the output ports is set to 0 in the following order: output port 4 → output port 3 → output port 2 → output port 1 → output port 0 → output port 7.

このように、図250に示した出力ポートクリア処理のコマンドの総コマンドサイズは、1行目のコマンド「LD HL,@OUT_PRT_4」3バイト+2行目のコマンド「LD B,6」2バイト+3行目のコマンド「CLRIRS」2バイト=7バイトとなる。 In this way, the total command size of the output port clear processing command shown in Figure 250 is 3 bytes for the command "LD HL, @OUT_PRT_4" on the first line + 2 bytes for the command "LD B, 6" on the second line + 2 bytes for the command "CLRIRS" on the third line = 7 bytes.

ここでは、図249のI/OマップドI/O方式を、図250のようにメモリマップドI/O方式に変更し、それに伴ってCLRIRS命令を利用することが可能となる。そうすると、図249の出力ポートクリア処理のコマンドの総コマンドサイズが8バイトであるのに対し、図250の出力ポートクリア処理のコマンドの総コマンドサイズが7バイトとなるので1バイトの削減が可能となる。このように、メモリマップドI/O方式によるCLRIRS命令を利用することによって、コマンドの短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 Here, the I/O mapped I/O method of FIG. 249 is changed to a memory mapped I/O method as shown in FIG. 250, which makes it possible to use the CLRIRS command. In this way, the total command size of the command for the output port clear process of FIG. 249 is 8 bytes, while the total command size of the command for the output port clear process of FIG. 250 is 7 bytes, making it possible to reduce by 1 byte. In this way, by using the CLRIRS command using the memory mapped I/O method, it is possible to shorten the command and ensure the capacity of the control area for performing game control processing.

なお、図250の例では、CLRIRS命令を利用することで、Aレジスタを利用しないで済む。したがって、Aレジスタの値を意図せず更新してしまうことがない。例えば、Aレジスタが既に利用されている場合、通常、Aレジスタを退避する必要があったが、ここでは、Aレジスタを利用しないので、退避する必要がない。こうして、リソースを有効利用することが可能となる。なお、図249の例では、Aレジスタに予め値「0」が設定されていることを前提としているが、コマンド「CLRIRS」には値「0」を設定する機能が備わっているので、予め値「0」を設定する処理も不要となる。こうして、コマンドの更なる短縮化を図り、遊技制御処理を行うための制御領域の容量を確保することが可能となる。 In the example of FIG. 250, by using the CLRIRS command, it is not necessary to use the A register. Therefore, the value of the A register will not be updated unintentionally. For example, if the A register is already in use, it would normally be necessary to save the A register, but since the A register is not used here, there is no need to save it. This makes it possible to use resources more efficiently. In the example of FIG. 249, it is assumed that the A register is set to the value "0" in advance, but since the command "CLRIRS" has a function for setting the value "0", the process of setting the value "0" in advance is also unnecessary. In this way, it is possible to further shorten the command and ensure the capacity of the control area for performing game control processing.

(メダルレス遊技機、管理遊技機)
ところで、上述した遊技機100(パチンコ機)の代わりに、パチンコ機を封入循環式にして遊技者が遊技球に触れることなく遊技を進行することができる管理遊技機が検討されている。また、スロットマシン400の代わりに、実物のメダルの介在なしに遊技を進行することができるメダルレス遊技機が検討されている。以下、管理遊技機およびメダルレス遊技機について説明する。ここでは、主としてメダルレス遊技機を挙げ、管理遊技機およびメダルレス遊技機に共通する仕様を説明し、管理遊技機に特有の内容については、随時、補足的に説明する。
(Medalless gaming machines, managed gaming machines)
Incidentally, instead of the above-mentioned gaming machine 100 (pachinko machine), a controlled gaming machine is being considered, which is a pachinko machine with an enclosed circulation system, allowing the player to play without touching the gaming balls. Also, instead of the slot machine 400, a medal-less gaming machine is being considered, allowing the player to play without the intervention of actual medals. The controlled gaming machine and medal-less gaming machine will be explained below. Here, medal-less gaming machines will be mainly mentioned, and specifications common to the controlled gaming machine and medal-less gaming machine will be explained, and details specific to the controlled gaming machine will be supplemented as necessary.

図251は、遊技システム900を示した機能ブロック図である。遊技システム900は、メダルレス遊技機902と、専用ユニット904(特定ユニット)と、ホールコンピュータ906と、管理コンピュータ908と、カード会社データセンタ910と、遊技機情報センタ912とを含む。なお、遊技システム900では、実物のメダルの代わりに、電子的な遊技媒体(遊技価値)として電子化メダル(遊技価値)を用いている。したがって、上述したスロットマシン400におけるメダルを用いた遊技は、メダルレス遊技機902における電子化メダルを用いた遊技に読み替えて適用することができる。 Figure 251 is a functional block diagram showing a gaming system 900. The gaming system 900 includes a medal-less gaming machine 902, a dedicated unit 904 (specific unit), a hall computer 906, a management computer 908, a card company data center 910, and a gaming machine information center 912. Note that the gaming system 900 uses electronic medals (game value) as electronic gaming media (game value) instead of actual medals. Therefore, the game using medals in the slot machine 400 described above can be read as a game using electronic medals in the medal-less gaming machine 902 and applied.

メダルレス遊技機902では、メダルの介在なしに、スロットマシン400と同様の遊技を実行することができる。また、メダルレス遊技機902は、メダルレス遊技機902内の各種情報を専用ユニット904に出力することができる。専用ユニット904は、メダルレス遊技機902と接続され、遊技者に電子化メダルを貸し出したり、遊技者が獲得した電子化メダルを計数することができる。ホールコンピュータ906は、ホール(遊技場)に設置され、不正監視情報を収集するため、メダルレス遊技機902を含むホール内の全ての遊技機の状態を管理する。管理コンピュータ908は、ホール内の全ての専用ユニット904と接続され、専用ユニット904を介してメダルレス遊技機902の各種情報を収集する。カード会社データセンタ910は、管理コンピュータ908に接続され、メダルレス遊技機902の各種情報に基づいてカードユニットやカード媒体を管理する。遊技機情報センタ912は、カード会社データセンタ910に接続され、メダルレス遊技機902の各種情報を収集および管理する。 In the medalless gaming machine 902, a game can be played in the same manner as in the slot machine 400, without the intervention of medals. The medalless gaming machine 902 can output various information within the medalless gaming machine 902 to the dedicated unit 904. The dedicated unit 904 is connected to the medalless gaming machine 902, and can lend electronic medals to players and count the electronic medals acquired by players. The hall computer 906 is installed in the hall (amusement hall) and manages the status of all gaming machines in the hall, including the medalless gaming machine 902, in order to collect fraud monitoring information. The management computer 908 is connected to all the dedicated units 904 in the hall, and collects various information on the medalless gaming machine 902 through the dedicated unit 904. The card company data center 910 is connected to the management computer 908, and manages the card units and card media based on various information on the medalless gaming machine 902. The gaming machine information center 912 is connected to the card company data center 910 and collects and manages various information about the medalless gaming machine 902.

図252は、メダルレス遊技機902および専用ユニット904の概略的な機械的構成を説明するための外観図であり、図253は、メダルレス遊技機902および専用ユニット904の概略的な電気的構成を示したブロック図である。 Figure 252 is an external view for explaining the general mechanical configuration of the medalless gaming machine 902 and the dedicated unit 904, and Figure 253 is a block diagram showing the general electrical configuration of the medalless gaming machine 902 and the dedicated unit 904.

図73および図76と、図252および図253とを比較して理解できるように、スロットマシン400とメダルレス遊技機902とは遊技の進行に関する構造および機能はほぼ等しい。ここでは、構造および機能がスロットマシン400と等しい構成については、同一の符号を付して説明を省略し、スロットマシン400と異なる構成について詳述する。 As can be understood by comparing Figures 73 and 76 with Figures 252 and 253, the slot machine 400 and the medalless gaming machine 902 are almost identical in structure and function with respect to the progress of the game. Here, the components that are identical in structure and function to the slot machine 400 are given the same reference numerals and their explanation is omitted, and the components that differ from the slot machine 400 are described in detail.

メダルレス遊技機902では、実物のメダルの投入、および、実物のメダルの払い出しが不要となるため、スロットマシン400におけるメダル投入部414、メダル払出装置442等のメダルを流通させる機能部を設ける必要がない。一方、メダルレス遊技機902は、スロットマシン400と異なり、後述する遊技球等貸出装置接続端子板948を通じて専用ユニット904と接続するメダル数制御基板920を含む。メダル数制御基板920は、計数スイッチ922、遊技メダル数表示装置924と接続される。計数スイッチ922は、表示装置924近傍において押圧スイッチで構成され、遊技者が獲得し、メダルレス遊技機902で電子的に保持された(遊技の用に供することができる)電子化メダル(かかるメダルレス遊技機902で電子的に保持された遊技の用に供することが可能な電子化メダルの総数を「遊技メダル数」(遊技価値数)と称し、RAMのうち、電子化メダルを保持する記憶部を「メダル保持部」と称する場合がある)の一部または全部を専用ユニット904に転送する操作を検出する。計数スイッチ922の操作には、500msec未満の短押しと500msec以上の長押しが準備されている。計数スイッチ922の短押しでは、操作毎に電子化メダルが1枚計数され、長押しでは、後述する図264、図265で示されるように、300msec毎の計数通知を行うタイミングで電子化メダルが50枚ずつ計数される(メダル保持部に保持されたメダルが50枚未満の場合は全部の電子化メダルが計数される)。なお、図示しない、遊技メダル数クリアスイッチは、遊技者が操作できない位置に押圧スイッチで構成され、遊技メダル数表示装置924に表示された遊技メダルの数をクリアする。具体的に、メダルレス遊技機902の電源をOFFした後、当該遊技メダル数クリアスイッチを操作しながらメダルレス遊技機902の電源をONすることでクリアされる。このとき遊技メダル数クリアステータスがONされ、遊技の終了を契機に遊技メダル数クリアステータスがOFFされる。 The medal-less gaming machine 902 does not require the insertion and dispensing of actual medals, and therefore does not require the provision of functional units for distributing medals, such as the medal insertion unit 414 and medal dispensing device 442 in the slot machine 400. Meanwhile, unlike the slot machine 400, the medal-less gaming machine 902 includes a medal count control board 920 that connects to the dedicated unit 904 via a gaming ball etc. lending device connection terminal board 948, which will be described later. The medal count control board 920 is connected to a counting switch 922 and a gaming medal count display device 924. The counting switch 922 is composed of a push switch located near the display device 924, and detects an operation to transfer some or all of the electronic medals that the player has won and that are electronically held in the medalless gaming machine 902 (that can be used for gaming) (the total number of electronic medals that are electronically held in the medalless gaming machine 902 and can be used for gaming is referred to as the "game medal number" (game value number), and the memory section of the RAM that holds the electronic medals is sometimes referred to as the "medal holding section") to the dedicated unit 904. The counting switch 922 can be operated in two ways: a short press of less than 500 msec and a long press of 500 msec or more. When the counting switch 922 is pressed briefly, one electronic medal is counted for each operation, and when the counting switch 922 is pressed for a long time, as shown in Figs. 264 and 265 described later, 50 electronic medals are counted at the timing when the count notification is made every 300 msec (if there are less than 50 medals held in the medal holding section, all electronic medals are counted). The medal count clear switch (not shown) is configured as a push switch located in a position where the player cannot operate it, and clears the number of medals displayed on the medal count display device 924. Specifically, after the medalless gaming machine 902 is powered off, the medalless gaming machine 902 is powered on while operating the medal count clear switch, thereby clearing the number of medals. At this time, the medal count clear status is turned on, and when the game ends, the medal count clear status is turned off.

遊技メダル数表示装置924は、メダル保持部に保持された電子化メダルの総数(遊技メダル数)を表示する。ただし、遊技メダル数にはベットした電子化メダルは含まれない。したがって、遊技メダル数表示装置924には、遊技者が獲得した電子化メダルから、ベットした電子化メダルの数を減算した数が表示される。なお、遊技メダル数の表示は、遊技者が視認できる位置に配された5桁または6桁の7セグメントの表示器等で以下のように表される。すなわち、その数値範囲は、1営業日における最大差枚数を勘案して0~16368で表され、有意な数値の上位の桁が0となる場合、その数値を空白とする。ここで、その数値が15000以上となると、遊技者に計数を促す報知を実行し、電子化メダルの貸出処理を制限するとともに、試験用計数信号を約3500msecの間出力する。ただし、遊技者は遊技を引き続き継続可能である。そして、その数値が16369以上となった場合、遊技の進行を制限する。具体的には、ベットスイッチ416、スタートスイッチ418、精算スイッチ437の受付を禁止する。なお、その数値が16369以上となった場合の代わりに、その数値が16369以上となりそうな場合に、遊技者により計数が実行されるまで電子化メダルの払出を禁止するとしてもよい。例えば、その数値が、16369から、1遊技で取得可能な最大差枚数である12枚(最大払出枚数(例えば15枚)-規定数(例えば3枚))を減算した16357以上となった場合に遊技を停止させるとしてもよい。また、遊技メダル数表示装置924は、メダルレス遊技機902で保持される遊技メダル数が更新されてから概ね300msec以内に、更新された遊技メダル数を反映して表示する。また、遊技メダル数表示装置924は、エラーコード表示機能部と共用装置とし、エラーコードを表示することができる。ただし、エラーコードは遊技不可(ベットスイッチ416、スタートスイッチ418、精算スイッチ437の受付禁止、および、電子化メダルの貸出処理、計数処理を制限)の場合にのみ表示可能となる。 The game medal count display device 924 displays the total number of electronic medals held in the medal holding section (game medal count). However, the electronic medals bet is not included in the game medal count. Therefore, the game medal count display device 924 displays the number obtained by subtracting the number of electronic medals bet from the number of electronic medals acquired by the player. The game medal count is displayed as follows on a 5-digit or 6-digit 7-segment display or the like arranged in a position visible to the player. That is, the numerical range is expressed as 0 to 16368 taking into account the maximum difference in number of medals in one business day, and if the upper digit of a significant numerical value is 0, the numerical value is left blank. Here, if the numerical value becomes 15000 or more, a notification is executed to prompt the player to count, the lending process of electronic medals is restricted, and a test counting signal is output for about 3500 msec. However, the player can continue playing. And, if the numerical value becomes 16369 or more, the progress of the game is restricted. Specifically, the bet switch 416, the start switch 418, and the settlement switch 437 are prohibited from being accepted. Instead of when the numerical value is 16369 or more, when the numerical value is likely to be 16369 or more, the payout of electronic medals may be prohibited until the player executes the counting. For example, when the numerical value is 16357 or more, which is obtained by subtracting 12 medals (maximum payout number (for example, 15 medals) - a prescribed number (for example, 3 medals)) which is the maximum difference number that can be obtained in one game from 16369, the game may be stopped. Furthermore, the game medal number display device 924 reflects and displays the updated game medal number within approximately 300 msec after the game medal number held in the medalless game machine 902 is updated. Furthermore, the game medal number display device 924 is a shared device with an error code display function unit, and can display an error code. However, the error code can only be displayed when play is not possible (the bet switch 416, start switch 418, and settlement switch 437 are not accepted, and the electronic medal lending process and counting process are restricted).

なお、スロットマシン400と機能が共通するベットスイッチ416は、メダルレス遊技機902のメダル保持部で保持される電子化メダルのうち、1遊技で必要とされる規定数の電子化メダルをベットする操作を検出する。また、図示しない1ベットスイッチによって、メダルレス遊技機902のメダル保持部で保持される電子化メダルのうち、1枚の電子化メダルをベットすることもできる。かかるベットスイッチ416や1ベットスイッチは、スロットマシン400と機能が共通する精算スイッチ437等と共用装置とし、精算機能を備えることができる。また、精算スイッチ437は、ベットスイッチ416または1ベットスイッチの1回の操作によりベットされた電子化メダルの全てをメダル保持部に返却する。かかる精算スイッチ437の操作は、電子化メダルがベットされてから、スタートスイッチ418が操作されるまでの間のみ有効である。 The bet switch 416, which shares the same function as the slot machine 400, detects an operation to bet a specified number of electronic medals required for one game among the electronic medals held in the medal holding section of the medalless gaming machine 902. Also, a one-bet switch (not shown) can be used to bet one electronic medal among the electronic medals held in the medal holding section of the medalless gaming machine 902. Such bet switch 416 and one-bet switch can be shared with a settlement switch 437, which shares the same function as the slot machine 400, and can be provided with a settlement function. Furthermore, the settlement switch 437 returns all electronic medals bet by one operation of the bet switch 416 or one-bet switch to the medal holding section. The operation of such a settlement switch 437 is valid only from the time electronic medals are bet until the start switch 418 is operated.

専用ユニット904は、メダルレス遊技機902のメダル数制御基板920と接続される専用ユニット制御基板930を含む。専用ユニット制御基板930は、現金投入部932、カード挿入部934、貸出スイッチ936、返却スイッチ938、遊技スイッチ940、度数表示装置942、獲得メダル数表示装置944と接続される。現金投入部932は、現金を投入する投入口として機能する。カード挿入部934は、電子化メダルを蓄積可能なカード媒体の挿入および引出を可能とする。貸出スイッチ936は、押圧スイッチで構成され、専用ユニット904で保持する現金の度数に対応する電子化メダルをメダルレス遊技機902に転送する操作を検出する。返却スイッチ938は、押圧スイッチで構成され、専用ユニット904で保持する電子化メダルをカード媒体に転送し、そのカード媒体を、カード挿入部934を通じて専用ユニット904から引き出す操作を検出する。遊技スイッチ940は、押圧スイッチで構成され、専用ユニット904で保持する電子化メダルをメダルレス遊技機902に転送する操作を検出する。度数表示装置942は、専用ユニット904で保持する度数、すなわち、現金投入部932から投入された現金に相当する度数を表示する。獲得メダル数表示装置944は、専用ユニット904で保持する電子化メダルの総数である獲得メダル数を表示する。 The dedicated unit 904 includes a dedicated unit control board 930 that is connected to the medal count control board 920 of the medalless gaming machine 902. The dedicated unit control board 930 is connected to a cash insertion section 932, a card insertion section 934, a loan switch 936, a return switch 938, a game switch 940, a degree display device 942, and an acquired medal count display device 944. The cash insertion section 932 functions as an insertion port for inserting cash. The card insertion section 934 enables the insertion and withdrawal of a card medium capable of accumulating electronic medals. The loan switch 936 is composed of a push switch, and detects an operation of transferring an electronic medal corresponding to the degree of cash held in the dedicated unit 904 to the medalless gaming machine 902. The return switch 938 is composed of a push switch, and detects an operation of transferring an electronic medal held in the dedicated unit 904 to a card medium and withdrawing the card medium from the dedicated unit 904 through the card insertion section 934. The game switch 940 is composed of a push switch, and detects the operation of transferring the electronic medals held in the dedicated unit 904 to the medal-less game machine 902. The point display device 942 displays the point number held in the dedicated unit 904, i.e., the point number equivalent to the cash inserted from the cash insertion unit 932. The acquired medal number display device 944 displays the acquired medal number, which is the total number of electronic medals held in the dedicated unit 904.

遊技者は、メダルレス遊技機902において遊技を試みる場合、まず、図252に示す専用ユニット904の現金投入部932に現金を投入する。そうすると、専用ユニット904の度数表示装置942に、投入した現金に相当する度数(例えば、千円の投入に対し「10」)が表示される。遊技者が、貸出スイッチ936を操作すると、専用ユニット904で保持する度数に対応する電子化メダルがメダルレス遊技機902に転送される。そうすると、メダルレス遊技機902の遊技メダル数表示装置924に転送された電子化メダルの枚数(例えば「50」)が表示される。具体的に、メダルレス遊技機902は、専用ユニット904から後述する貸出通知を受信した場合に、貸出通知が正常であれば、電子化メダルの転送を受け、貸出受領結果応答において「正常」と通知する。一方、貸出通知のうち電文長(05h)とコマンド(13h)の値は正常だが、その他の情報が異常である場合、メダルレス遊技機902は、後述する貸出受領結果応答において「異常」と通知する。また、貸出通知を正常に受信していない、または、貸出通知の電文長とコマンドの値が異常な場合、メダルレス遊技機902は、エラー表示を行うことなく、当該受信電文を破棄して、少なくとも電文長とコマンドとが正常な貸出通知を受信できるまで待機する。なお、貸出処理ができない場合、すなわち、後述する遊技機情報通知が異常である、後述する計数通知の計数メダル数(専用ユニット904に一度に転送する電子化メダルの数)が「1」以上である、遊技メダル数表示装置924に表示された遊技メダル数が15000枚以上である、受信した貸出通知のチェックサムが異常である、受信した貸出通知の貸出通番が連続していない、受信した貸出通知の貸出メダル数が「51」以上である、または、後述するメダル数制御CPU946から専用ユニット904へ送信する遊技機情報通知において、ホールコン・不正監視情報以外を通知している場合、メダルレス遊技機902は、貸出受領結果応答において「異常」を通知する。 When a player tries to play on the medal-less gaming machine 902, he or she first inserts cash into the cash insertion section 932 of the dedicated unit 904 shown in FIG. 252. Then, the number of points corresponding to the inserted cash (for example, "10" for the insertion of 1,000 yen) is displayed on the point display device 942 of the dedicated unit 904. When the player operates the loan switch 936, electronic medals corresponding to the number of points held in the dedicated unit 904 are transferred to the medal-less gaming machine 902. Then, the number of electronic medals transferred (for example, "50") is displayed on the game medal number display device 924 of the medal-less gaming machine 902. Specifically, when the medal-less gaming machine 902 receives a loan notification from the dedicated unit 904, which will be described later, if the loan notification is normal, the medal-less gaming machine 902 receives the transfer of the electronic medals and notifies "normal" in the loan receipt result response. On the other hand, if the values of the message length (05h) and command (13h) in the loan notification are normal but other information is abnormal, the medalless gaming machine 902 notifies "abnormal" in the loan receipt result response described below. Also, if the loan notification is not received normally or the message length and command values of the loan notification are abnormal, the medalless gaming machine 902 discards the received message without displaying an error, and waits until it can receive a loan notification with at least a normal message length and command. If the loan process cannot be performed, that is, if the gaming machine information notification described below is abnormal, the counted medal count (the number of electronic medals transferred to the dedicated unit 904 at one time) in the counting notification described below is "1" or more, the number of gaming medals displayed on the gaming medal count display device 924 is 15,000 or more, the checksum of the received loan notification is abnormal, the loan serial numbers in the received loan notification are not consecutive, the loaned medal count in the received loan notification is "51" or more, or the gaming machine information notification sent from the medal count control CPU 946 described below to the dedicated unit 904 notifies other than hall control/fraud monitoring information, the medalless gaming machine 902 will notify "abnormality" in the loan receipt result response.

続いて、遊技者が、ベットスイッチ416を操作すると、電子化メダルがベットされる。このとき、遊技メダル数表示装置924には、ベットされた電子化メダルの枚数(例えば「3」)が減算された値(例えば「47」)が表示される。こうして遊技者は、スロットマシン400同様、遊技を開始することが可能となる。仮に、遊技の結果、払出枚数が11枚となる小役が入賞した場合、払い出された電子化メダルの枚数(例えば「11」)が加算される(例えば「58」となる)。 Next, when the player operates the bet switch 416, electronic medals are bet. At this time, the game medal count display device 924 displays a value (e.g., "47") obtained by subtracting the number of electronic medals bet (e.g., "3") from the value. The player can then start playing, just like with the slot machine 400. If, as a result of playing, a minor combination resulting in a payout of 11 medals is won, the number of electronic medals paid out (e.g., "11") is added (e.g., "58").

なお、遊技者が、ベットスイッチ416を操作して電子化メダルがベットされた後であり、スタートスイッチ418が操作される(遊技開始)前に、精算スイッチ437が操作されると、ベットされた電子化メダルの枚数(例えば「3」)が遊技メダル数表示装置924に加算され(例えば「50」となり)、ベット状態が解除される。 When the settlement switch 437 is operated after the player operates the bet switch 416 to bet electronic medals and before the start switch 418 is operated (to start playing), the number of electronic medals bet (for example, "3") is added to the game medal count display device 924 (for example, "50"), and the bet state is released.

遊技者は、遊技を終了すると、計数スイッチ922を操作し、メダル保持部に保持された電子化メダルを専用ユニット904に転送する。そうすると、専用ユニット904の獲得メダル数表示装置944に、メダル保持部に保持されていた遊技メダル数が表示されるとともに、遊技メダル数表示装置924には「0」が表示される。遊技者が、返却スイッチ938を操作すると、専用ユニット904で保持する電子化メダルがカードに転送され、そのカードがカード挿入部934を通じて専用ユニット904から引き出される。こうして、遊技者は、獲得した電子化メダルをカード媒体に蓄積できる。 When the player has finished playing, he or she operates the counting switch 922 to transfer the digitized medals held in the medal holding section to the dedicated unit 904. The number of game medals held in the medal holding section is then displayed on the acquired medal count display device 944 of the dedicated unit 904, and "0" is displayed on the game medal count display device 924. When the player operates the return switch 938, the digitized medals held in the dedicated unit 904 are transferred to the card, and the card is withdrawn from the dedicated unit 904 via the card insertion section 934. In this way, the player can accumulate the acquired digitized medals on the card medium.

遊技者は、再度、遊技を試みる場合、現金の代わりに、電子化メダルが蓄積されたカード媒体をカード挿入部934に挿入し、カード媒体に蓄積された電子化メダルで遊技することができる。そうすると、カード媒体に蓄積された電子化メダルが専用ユニット904に転送され、獲得メダル数表示装置944には、カード媒体に蓄積されていた電子化メダルの総数が表示される。遊技者は、貸出スイッチ936の代わりに、遊技スイッチ940を操作することで、専用ユニット904で保持する電子化メダルをメダルレス遊技機902に転送することができる。 When the player tries to play again, he or she can insert the card medium on which the electronic medals have been accumulated into the card insertion section 934 instead of cash, and play with the electronic medals accumulated on the card medium. The electronic medals accumulated on the card medium are then transferred to the dedicated unit 904, and the total number of electronic medals accumulated on the card medium is displayed on the acquired medal count display device 944. By operating the play switch 940 instead of the loan switch 936, the player can transfer the electronic medals held in the dedicated unit 904 to the medal-less gaming machine 902.

なお、貸出スイッチ936や計数スイッチ922が操作されると、メダル数制御CPU(制御部)946は、電子化メダルの貸出処理や計数処理を実行するとともに、メインCPU(制御部)500aにその旨のコマンドを送信し、当該コマンドを受信したメインCPU500aは、サブCPU502aにその旨のコマンドを送信する。そして、サブCPU502aは、貸出処理や計数処理における、実際に電子化メダルが貸し出されるまたは計数されるのに伴って、電子化メダルの移動を表す所定の音をスピーカ428に出力する。こうして、遊技者は、貸出処理や計数処理が適切に実行されていることを聴覚的に確認することができる。また、サブCPU502aは、スピーカ428に限らず、液晶表示部424、演出用ランプ426といった各デバイスを通じて、貸出処理や計数処理が実行されていることを報知してもよい。なお、ここでは、制御部としてCPU(中央処理装置)を例に挙げて説明しているが、MPU(Micro Processor Unit)、DSP(Digital Signal Processor)、FPGA(Field Programmable Gate Array)等、演算可能な様々な演算素子を適用することができる。 When the loan switch 936 or the count switch 922 is operated, the medal count control CPU (control unit) 946 executes the loan process or count process of the electronic medals and transmits a command to that effect to the main CPU (control unit) 500a, and the main CPU 500a, which receives the command, transmits the command to the sub-CPU 502a. Then, the sub-CPU 502a outputs a predetermined sound representing the movement of the electronic medals to the speaker 428 as the electronic medals are actually loaned or counted in the loan process or count process. In this way, the player can audibly confirm that the loan process or count process is being executed appropriately. The sub-CPU 502a may also notify the fact that the loan process or count process is being executed through each device, such as the liquid crystal display unit 424 and the performance lamp 426, in addition to the speaker 428. Note that, here, a CPU (Central Processing Unit) is used as an example of the control unit, but various computing elements capable of performing calculations, such as an MPU (Micro Processor Unit), DSP (Digital Signal Processor), or FPGA (Field Programmable Gate Array), can also be used.

このようなメダルレス遊技機902では、実物のメダルが不要となるので、擬似的にメダルを投入したり、不正に持ち込んだメダルを使用するゴト行為を防止することが可能となる。また、遊技機内に遊技媒体の投入や払い出しを行う機構を設ける必要がなくなるので、設計コストや製造コストを削減することができる。さらに、遊技者への遊技媒体の貸し出しや、獲得した遊技媒体の計数等を一元管理することで、不正防止が可能となる。また、データを一元管理することで、射幸性を抑制し、ひいては、依存症対策を強化することが可能となる。 In such a medal-less gaming machine 902, actual medals are not required, making it possible to prevent cheating, such as inserting medals artificially or using medals that have been illegally brought in. Also, since there is no need to provide a mechanism for inserting and paying out gaming media within the gaming machine, design and manufacturing costs can be reduced. Furthermore, by centrally managing the lending of gaming media to players and the counting of acquired gaming media, it is possible to prevent fraud. Furthermore, by centrally managing data, it is possible to curb speculation and, ultimately, to strengthen measures against addiction.

なお、管理遊技機では、メダルレス遊技機902における、メダル数制御基板920、計数スイッチ922、遊技メダル数表示装置924それぞれと同機能を有する枠制御基板、計数スイッチ、遊技球数表示装置を適用することで、メダルレス遊技機902同様、管理遊技機と専用ユニット904とで遊技球を流通させることなく、遊技を進行することが可能となる。 In addition, in the managed gaming machine, by applying a frame control board, a counting switch, and a gaming ball number display device that have the same functions as the medal count control board 920, the counting switch 922, and the gaming medal number display device 924 in the medalless gaming machine 902, respectively, it becomes possible to proceed with the game without circulating gaming balls between the managed gaming machine and the dedicated unit 904, just like the medalless gaming machine 902.

また、ここでは、メダルレス遊技機902において、主制御基板500とは別にメダル数制御基板920を設け、メダル数制御基板920が独立して動作する例を挙げて説明したが、かかる場合に限らず、基板やCPUの構成を異ならせることができる。 In addition, an example has been described here in which a medal count control board 920 is provided in the medalless gaming machine 902 separately from the main control board 500, and the medal count control board 920 operates independently, but this is not the only case, and the board and CPU configurations can be different.

図254は、他の基板構成を説明するための説明図である。上述した実施形態では、図254(a)のように、主制御基板500に、遊技の進行を制御するメインCPU500a(第1制御部)が配され、メダル数制御基板920に、遊技に供する電子化メダルを管理するメダル数制御CPU946(第2制御部)が配され、主制御基板500とメダル数制御基板920とがハーネスを介して接続され、メダル数制御基板920と遊技球等貸出装置接続端子板948とがハーネスを介して接続されている。ここで、遊技球等貸出装置接続端子板948は、メダルレス遊技機902と専用ユニット904を接続するための接続端子板であり、電子化メダルの貸し出しに係る信号の受信、電子化メダルの貸出受領結果の送信、電子化メダルの計数に係る信号の送信、メダルレス遊技機902の各情報の送信を行う。また、遊技球等貸出装置接続端子板948は、専用ユニット904から電力(VL)の供給を受け、その電力をフォトカプラ等の絶縁素子の入力とし、専用ユニット904との接続状態を示すVL接続信号(特定接続信号)を生成してメダル数制御基板920に出力する。メダル数制御基板920は、VL接続信号のON/OFFによって、専用ユニット904から電力が供給されていること、換言すれば、専用ユニット904に電源が投入され、かつ、専用ユニット904と適切に接続されていることを判定することができる。かかる基板構成では、既存の主制御基板500の構成の改修や占有面積の増大を必要最低限に抑えることができるので、設計コストを削減することができる。 Figure 254 is an explanatory diagram for explaining another board configuration. In the above-mentioned embodiment, as shown in Figure 254 (a), the main control board 500 is provided with a main CPU 500a (first control unit) that controls the progress of the game, and the medal count control board 920 is provided with a medal count control CPU 946 (second control unit) that manages the electronic medals used in the game, and the main control board 500 and the medal count control board 920 are connected via a harness, and the medal count control board 920 and the game ball etc. lending device connection terminal board 948 are connected via a harness. Here, the game ball etc. lending device connection terminal board 948 is a connection terminal board for connecting the medalless gaming machine 902 and the dedicated unit 904, and receives signals related to the lending of electronic medals, transmits the lending receipt result of electronic medals, transmits signals related to the counting of electronic medals, and transmits each information of the medalless gaming machine 902. In addition, the game ball etc. dispensing device connection terminal board 948 receives power (VL) from the dedicated unit 904, uses the power as input to an insulating element such as a photocoupler, generates a VL connection signal (specific connection signal) indicating the connection state with the dedicated unit 904, and outputs it to the medal count control board 920. The medal count control board 920 can determine that power is being supplied from the dedicated unit 904, in other words, that the dedicated unit 904 is powered on and properly connected to the dedicated unit 904, by the ON/OFF of the VL connection signal. With such a board configuration, it is possible to minimize the need to modify the configuration of the existing main control board 500 and to increase the occupied area, thereby reducing design costs.

なお、メダル数制御基板920は、必ずしも主制御基板500と別体である必要はなく、その機能さえ満たせば、主制御基板500と一体的に形成されてもよい。具体的に、図254(b)のように、主制御基板500に、遊技の進行を制御するメインCPU500a、および、遊技に供する電子化メダルを管理するメダル数制御CPU946のいずれもが配され、主制御基板500と遊技球等貸出装置接続端子板948とがハーネスを介して接続されていてもよい。ここでは、1枚の主制御基板500に、メインCPU500aとメダル数制御CPU946とを共に配することで、両者の情報交換に用いられるコネクタやハーネスを排除し、占有面積を縮小するとともに、情報伝達の信頼性の向上を図ることができる。 The medal count control board 920 does not necessarily need to be separate from the main control board 500, and may be formed integrally with the main control board 500 as long as it fulfills its function. Specifically, as shown in FIG. 254(b), the main control board 500 may be provided with both the main CPU 500a that controls the progress of the game and the medal count control CPU 946 that manages the electronic medals used in the game, and the main control board 500 and the game ball etc. lending device connection terminal board 948 may be connected via a harness. Here, by providing both the main CPU 500a and the medal count control CPU 946 on a single main control board 500, the connectors and harnesses used for information exchange between the two can be eliminated, the occupied area can be reduced, and the reliability of information transmission can be improved.

また、図254(c)の例では、主制御基板500に配されたメインCPU500aが、メダル数制御CPU946の代わりに、遊技に供する電子化メダルを管理し、主制御基板500と遊技球等貸出装置接続端子板948とがハーネスを介して接続されている。ここでは、主制御基板500において、メインCPU500aが、遊技の進行を制御するとともに、電子化メダルを管理するので、メインCPU500aとメダル数制御CPU946との情報交換を担う接続線が必要なくなり、占有面積をさらに縮小するとともに、情報伝達の信頼性の向上を図ることができる。 In the example of FIG. 254(c), the main CPU 500a arranged on the main control board 500 manages the electronic medals used in the game instead of the medal count control CPU 946, and the main control board 500 and the game ball etc. lending device connection terminal board 948 are connected via a harness. Here, in the main control board 500, the main CPU 500a controls the progress of the game and manages the electronic medals, so there is no need for a connection line for information exchange between the main CPU 500a and the medal count control CPU 946, which further reduces the occupied area and improves the reliability of information transmission.

ここで、少なくとも主制御基板500は、不正防止のため主基板ケースに封入しなければならない。これに加え、遊技に供する電子化メダルを管理する機能を備えるメダル数制御基板920が別体である場合、主制御基板500と共に主基板ケースに封入しなければならない。 Here, at least the main control board 500 must be enclosed in the main board case to prevent fraud. In addition, if the medal count control board 920, which has the function of managing the electronic medals used in the game, is a separate entity, it must be enclosed in the main board case together with the main control board 500.

図255は、ケースの封入態様を説明するための説明図である。例えば、図254(a)に示すように、主制御基板500とメダル数制御基板920と遊技球等貸出装置接続端子板948とがそれぞれ別体に形成され、主制御基板500とメダル数制御基板920とが接続され、メダル数制御基板920と遊技球等貸出装置接続端子板948とが接続されている場合、図255(a)に示すように、主制御基板500、メダル数制御基板920、遊技球等貸出装置接続端子板948を全て1の主基板ケース500eに封入することが考えられる。ここでは、図255(a)のように、主制御基板500とメダル数制御基板920とを、ハーネスを介すことなくコネクタ同士を直接固定的に接続することで一体的に形成する例を挙げて説明しているが、両者を、ハーネスを介して接続してもよい。 255 is an explanatory diagram for explaining the enclosure of the case. For example, as shown in FIG. 254(a), when the main control board 500, the medal count control board 920, and the game ball etc. lending device connection terminal board 948 are formed separately, and the main control board 500 and the medal count control board 920 are connected, and the medal count control board 920 and the game ball etc. lending device connection terminal board 948 are connected, it is possible to enclose the main control board 500, the medal count control board 920, and the game ball etc. lending device connection terminal board 948 all in one main board case 500e as shown in FIG. 255(a). Here, as shown in FIG. 255(a), an example is given in which the main control board 500 and the medal count control board 920 are integrally formed by directly and fixedly connecting the connectors to each other without using a harness, but the two may be connected via a harness.

また、図254(b)および図254(c)に示すように、主制御基板500にメインCPU500aとメダル数制御CPU946とが配され、または、メインCPU500aが単独で配され、主制御基板500と遊技球等貸出装置接続端子板948とがハーネスを介して接続されている場合、主制御基板500と遊技球等貸出装置接続端子板948とが接続された状態で、図255(b)のように、主制御基板500を主基板ケース500eに、遊技球等貸出装置接続端子板948を接続端子ケース948eに、それぞれ個別に封入してもよいし、図255(c)のように、主制御基板500と遊技球等貸出装置接続端子板948とを全て1の主基板ケース500eに封入することが考えられる。 Also, as shown in Figures 254(b) and 254(c), when the main CPU 500a and the medal count control CPU 946 are arranged on the main control board 500, or when the main CPU 500a is arranged alone and the main control board 500 and the game ball etc. lending device connection terminal board 948 are connected via a harness, the main control board 500 and the game ball etc. lending device connection terminal board 948 may be individually enclosed in the main board case 500e and the game ball etc. lending device connection terminal board 948 in the connection terminal case 948e, respectively, in a state where they are connected, as shown in Figure 255(b), or it is possible to enclose the main control board 500 and the game ball etc. lending device connection terminal board 948 all in a single main board case 500e, as shown in Figure 255(c).

いずれにしても、ここでは、主制御基板500、メダル数制御基板920および遊技球等貸出装置接続端子板948を全てケースに封入する。また、この場合に、基板表面のみならず、基板裏面の確認も容易となる構造としなければならない。 In any case, the main control board 500, medal count control board 920, and game ball etc. dispensing device connection terminal board 948 are all enclosed in a case. In this case, the structure must be such that it is easy to check not only the front surface of the board, but also the back surface of the board.

図254(a)および図254(b)に示した例では、メダルレス遊技機902において、メインCPU500aとメダル数制御CPU946とがそれぞれ独立して動作し、メインCPU500aが遊技の進行を制御しつつ、メダル数制御CPU946が遊技に供する電子化メダルを管理する。 In the example shown in Figures 254(a) and 254(b), in a medalless gaming machine 902, the main CPU 500a and medal count control CPU 946 operate independently, with the main CPU 500a controlling the progress of the game and the medal count control CPU 946 managing the electronic medals used in the game.

図256は、メダルレス遊技機902の各機能を実行するCPUおよび領域(上述した使用領域または使用外領域)を説明するための説明図である。図256において、「◎」は、図254(a)および図254(b)のように、メインCPU500aとメダル数制御CPU946との2つのCPUで機能を分担する場合の一般的な実行部を示し、「○」は、実行可能な実行部を示し、「×」は実行不能な実行部を示す。例えば、2つのCPUで機能を分担する場合、図256のNo.12に示すように、一般に、メダル数制御CPU946の使用領域において、遊技メダル数表示装置924を制御する機能や専用ユニット904との通信を制御する機能を担うが(図256中、「◎」で示す)、メインCPU500aの使用領域において、その一部または全部を負担することも可能である(図256中、「○」で示す)。 256 is an explanatory diagram for explaining the CPUs and areas (used areas or non-used areas described above) that execute each function of the medalless gaming machine 902. In FIG. 256, "◎" indicates a general execution unit when the functions are shared by two CPUs, the main CPU 500a and the medal count control CPU 946, as in FIG. 254(a) and FIG. 254(b), "◯" indicates an executable execution unit, and "×" indicates an inexecutable execution unit. For example, when the functions are shared by two CPUs, as shown in No. 12 in FIG. 256, the function of controlling the game medal count display device 924 and the function of controlling communication with the dedicated unit 904 are generally carried out in the usage area of the medal count control CPU 946 (shown by "◎" in FIG. 256), but it is also possible for some or all of these functions to be borne in the usage area of the main CPU 500a (shown by "◯" in FIG. 256).

(メダルレス遊技機と専用ユニットとの通信)
以上示したような機能部により、メダルレス遊技機902と専用ユニット904とは、シリアル通信を介して様々な情報(電文)を交換することで互いの正常な動作を確保する。なお、シリアル通信は、非同期通信方式で全二重通信制御が行われ、例えば、通信速度が62500bpsであり、データの各バイトが、1ビットのスタートビット、8ビットのデータビット、1ビットのストップビットで表される。このとき、キャラクタ送信時間は0.16msec~3.9msecであり、3.9msec以内に次のスタートビットを受信できなかった場合、そのキャラクタを1電文とみなす。例えば、メダルレス遊技機902(ここでは、例えば、メダル数制御基板920のメダル数制御CPU946)から専用ユニット904には、かかるシリアル通信を通じて、以下の遊技機情報通知、計数通知、貸出受領結果応答が行われる。
(Communication between medal-less gaming machine and dedicated unit)
The above-described functional units allow the medal-less gaming machine 902 and the dedicated unit 904 to exchange various information (messages) via serial communication to ensure normal operation of each other. The serial communication is controlled by full-duplex communication control using an asynchronous communication method, with a communication speed of, for example, 62,500 bps, and each byte of data being represented by one start bit, eight data bits, and one stop bit. At this time, the character transmission time is 0.16 msec to 3.9 msec, and if the next start bit is not received within 3.9 msec, the character is considered to be one message. For example, the medal-less gaming machine 902 (here, for example, the medal count control CPU 946 of the medal count control board 920) sends the following gaming machine information notification, counting notification, and loan receipt result response to the dedicated unit 904 via such serial communication.

図257~図260は、遊技機情報通知のフォーマットを説明するための説明図である。図257に示すように、遊技機情報通知は、遊技機性能情報、遊技機設置情報、ホールコン・不正監視情報の3つの遊技機情報のうち1の遊技機情報を専用ユニット904に伝達するもので、電文長は18~57バイトの可変長となっている。具体的に、遊技機情報通知の電文の1バイト目には電文長(12h~39h)が示され、2バイト目にはコマンドの種別(ここでは遊技機情報通知)を示す「01h」が示される。3バイト目には、通番として00h~FFhのシーケンス番号が示される。かかる通番は、電源投入時に00hを通知し、通知の度に1だけインクリメントする。ただし、FFhの次の通知では00hではなく01hとする。 Figures 257 to 260 are explanatory diagrams for explaining the format of gaming machine information notification. As shown in Figure 257, the gaming machine information notification transmits one of the three gaming machine information items, gaming machine performance information, gaming machine installation information, and hall control/fraud monitoring information, to the dedicated unit 904, and the message length is variable from 18 to 57 bytes. Specifically, the first byte of the gaming machine information notification message indicates the message length (12h to 39h), and the second byte indicates "01h" indicating the type of command (here, gaming machine information notification). The third byte indicates a sequence number from 00h to FFh as a serial number. When the power is turned on, the serial number is notified as 00h, and is incremented by 1 each time a notification is made. However, the notification following FFh is notified as 00h, but as 01h.

4バイト目には、遊技機種類が示される。遊技機種類のビット7は管理媒体を示し、遊技球が「0」、遊技メダルが「1」で表され、ビット6~4は団体区分を示し、日工組が「0」、日電協が「1」で表され、ビット3~0は遊技機種類を示し、パチンコ遊技機が「1」、回胴式遊技機が「2」、アレンジボール遊技機が「3」、じゃん球遊技機が「4」で表される。5バイト目には、遊技機情報種別が示される。例えば、遊技機情報が遊技機性能情報であれば「00h」、遊技機情報が遊技機設置情報であれば「01h」、遊技機情報がホールコン・不正監視情報であれば「02h」となる。6バイト目からは、遊技機情報(遊技機性能情報、遊技機設置情報、ホールコン・不正監視情報のいずれか)が可変長で示される。 The fourth byte indicates the type of gaming machine. Bit 7 of the gaming machine type indicates the management medium, with gaming balls being represented by "0" and gaming medals by "1". Bits 6 to 4 indicate the group classification, with the Japan Machinery Works Union being represented by "0" and the Japan Electrical Manufacturers Association being represented by "1". Bits 3 to 0 indicate the type of gaming machine, with pachinko machines being represented by "1", slot machines being represented by "2", arrange ball machines being represented by "3", and jankyu machines being represented by "4". The fifth byte indicates the type of gaming machine information. For example, if the gaming machine information is gaming machine performance information, it will be "00h", if the gaming machine information is gaming machine installation information, it will be "01h", and if the gaming machine information is hall control/fraud monitoring information, it will be "02h". From the sixth byte onwards, gaming machine information (either gaming machine performance information, gaming machine installation information, or hall control/fraud monitoring information) is indicated in variable length.

例えば、遊技機情報種別が「00h」であれば、遊技機情報として遊技機性能情報が51バイトで表され、図258に示すように、総投入枚数、総払出枚数、MY(最大差枚数)、役物総払出枚数、連続役物総払出枚数、役物比率、連続役物比率、有利区間比率、指示込役物比率、役物等状態比率、遊技回数、予備、予約1、予約2が含まれる。遊技機性能情報は、専用ユニット904に転送された後、さらに遊技機情報センタ912に送信される。なお、かかる情報のうち、総投入枚数、総払出枚数、MY、役物総払出枚数、連続役物総払出枚数、遊技回数のバイトオーダはリトルエンディアンである。 For example, if the gaming machine information type is "00h", the gaming machine performance information is represented by 51 bytes as gaming machine information, and as shown in FIG. 258, includes the total number of coins inserted, the total number of coins paid out, MY (maximum difference in number of coins), the total number of coins paid out for special features, the total number of coins paid out for consecutive special features, the bonus feature ratio, the consecutive bonus feature ratio, the ratio of advantageous zones, the ratio of special features with instructions, the bonus feature status ratio, the number of times played, the reserve, reservation 1, and reservation 2. The gaming machine performance information is transferred to the dedicated unit 904, and then further transmitted to the gaming machine information center 912. Of this information, the byte order of the total number of coins inserted, the total number of coins paid out, MY, the total number of coins paid out for special features, the total number of coins paid out for consecutive special features, and the number of times played is little endian.

また、遊技機情報種別が「01h」であれば、遊技機情報として遊技機設置情報が40バイトで表され、図259に示すように、主制御チップID番号、主制御チップメーカコード、主制御チップ製品コード、メダル数制御チップID番号、メダル数制御チップメーカコード、メダル数制御チップ製品コードが含まれる。ここで、主制御チップID番号(9バイト)およびメダル数制御チップID番号(9バイト)は、上位4バイトが0で表され、続く4バイトがチップ個別ナンバーまたはチップコードで表され、最下位バイトが識別コード(LEM50A=「21h」、LES50A=「22h」、LEM7OA=「23h」、IDNAC8701=「41h」、IDNAC8702=「42h」、IDNAC8703=「43h」)で表される。ただし、メダル数制御CPU946を非搭載の場合、9バイトが全て0で表される。なお、主制御チップID番号、主制御チップメーカコード、主制御チップ製品コード、メダル数制御チップID番号、メダル数制御チップメーカコード、メダル数制御チップ製品コードのバイトオーダはビックエンディアンである。 If the gaming machine information type is "01h", the gaming machine installation information is represented by 40 bytes as gaming machine information, and includes the main control chip ID number, main control chip manufacturer code, main control chip product code, medal count control chip ID number, medal count control chip manufacturer code, and medal count control chip product code, as shown in FIG. 259. Here, the main control chip ID number (9 bytes) and medal count control chip ID number (9 bytes) are represented by the upper 4 bytes being 0, the following 4 bytes being chip individual number or chip code, and the lowest byte being identification code (LEM50A = "21h", LES50A = "22h", LEM7OA = "23h", IDNAC8701 = "41h", IDNAC8702 = "42h", IDNAC8703 = "43h"). However, if the medal count control CPU 946 is not installed, all 9 bytes are represented by 0. The byte order of the main control chip ID number, main control chip manufacturer code, main control chip product code, medal count control chip ID number, medal count control chip manufacturer code, and medal count control chip product code is big endian.

また、遊技機情報種別が「02h」であれば、遊技機情報としてホールコン・不正監視情報が12~16バイトで表され、図260に示すように、遊技メダル数、投入メダル数、払出メダル数、主制御状態1、主制御状態2、遊技機エラー状態、遊技機不正1、遊技機不正2、遊技機不正3、遊技情報数、種別情報1、カウント情報1、種別情報2、カウント情報2が含まれる。ここで、遊技メダル数、投入メダル数、払出メダル数の関係は、「遊技メダル数」=前回送信した「遊技メダル数」-「投入メダル数」+「払出メダル数」+前回送信した遊技メダル数の後に受信した「貸出メダル数」-前回送信した遊技メダル数の後に送信した「計数メダル数」となるので、かかる関係を満たさなければ、ホールコン・不正監視情報が異常であると判断することができる。また、遊技機不正1のビット0における設定変更中信号は、設定変更中および設定変更が行われたことを示し、設定変更中~設定変更後の1遊技終了時まで継続して出力される。また、ビット1の設定確認中信号は、設定確認中を示し、ゴト対策として、少なくとも3秒間は出力しなければならない。なお、設定確認中信号の出力中に電断が生じた場合、3秒間を計時していたタイマをリセットして、再度、3秒間、設定確認中信号を出力してもよいし、電断時のタイマの値を保存し、電源投入時(電断復帰時)に、保存しているタイマの値から計時を再開し、設定確認中信号を出力するとしてもよい。この場合、電断前および電断復帰後における設定確認中信号を出力している総時間が3秒となる。種別情報1とカウント情報1との組み合わせ、または、種別情報2とカウント情報2との組み合わせからなる遊技情報は、種別情報1、2によって、規定数(スタートスイッチ418の操作時)か払出枚数(遊技終了時)かが示され、カウント情報1、2によってその枚数が示される。なお、リプレイ時は、再遊技作動時の規定数を通知する。遊技情報数は、遊技情報の数を示し、遊技情報数が0の場合、種別情報1、カウント情報1、種別情報2、カウント情報2の4項目は送信されない。 If the gaming machine information type is "02h", the hall control/fraud monitoring information is represented as gaming machine information in 12 to 16 bytes, and includes the number of gaming medals, the number of inserted medals, the number of paid out medals, main control status 1, main control status 2, gaming machine error status, gaming machine fraud 1, gaming machine fraud 2, gaming machine fraud 3, the number of gaming information, type information 1, count information 1, type information 2, and count information 2, as shown in FIG. 260. Here, the relationship between the number of gaming medals, the number of inserted medals, and the number of paid out medals is "number of gaming medals" = "number of gaming medals" sent last time - "number of inserted medals" + "number of paid out medals" + "number of loaned medals" received after the number of gaming medals sent last time - "counted number of gaming medals" sent after the number of gaming medals sent last time. If this relationship is not satisfied, it can be determined that the hall control/fraud monitoring information is abnormal. In addition, the setting change signal in bit 0 of gaming machine fraud 1 indicates that the setting is being changed and that the setting has been changed, and is output continuously from the time the setting is being changed to the time one game ends after the setting is changed. In addition, the setting check signal in bit 1 indicates that the setting is being checked, and must be output for at least three seconds as a countermeasure against cheating. If a power outage occurs while the setting check signal is being output, the timer that was timing for three seconds may be reset and the setting check signal may be output again for three seconds, or the value of the timer at the time of the power outage may be saved, and when the power is turned on (when the power is restored), the timer may be restarted from the saved value of the timer and the setting check signal may be output. In this case, the total time that the setting check signal is output before the power outage and after the power is restored is three seconds. In the game information consisting of a combination of type information 1 and count information 1, or a combination of type information 2 and count information 2, type information 1 and 2 indicate whether the specified number (when the start switch 418 is operated) or the number of coins to be paid out (when the game ends), and the number of coins is indicated by count information 1 and 2. During replay, the specified number at the time of replay activation is notified. The number of game information indicates the number of game information, and if the number of game information is 0, the four items type information 1, count information 1, type information 2, and count information 2 are not sent.

図261は、計数通知のフォーマットを説明するための説明図である。計数通知は、後述する計数累積メダル数を専用ユニット904に伝達するもので、電文長は7バイトの固定長となっている。具体的に、電文の1バイト目には電文長(07h)が示され、2バイト目にはコマンドの種別(ここでは計数通知)を示す「02h」が示される。3バイト目には、計数通番として00h~FFhのシーケンス番号が示される。かかる計数通番は、電源投入時に00hを通知し、通知の度に1だけインクリメントする。ただし、FFhの次の通知では00hではなく01hとする。4バイト目には、計数メダル数が示される。計数メダル数は、計数通知のタイミングで計数した電子化メダルの枚数である。5バイト目には、計数累積メダル数が示される。計数累積メダル数は、メダルレス遊技機902の電源投入時に0000hにクリアされてから計数メダル数が累積された値であり、FFFFhの次の値は0000hとなる。7バイト目には、チェックサムが示される。 Figure 261 is an explanatory diagram for explaining the format of the count notification. The count notification transmits the counted cumulative medal count, which will be described later, to the dedicated unit 904, and the message length is a fixed length of 7 bytes. Specifically, the first byte of the message indicates the message length (07h), and the second byte indicates "02h" indicating the type of command (here, count notification). The third byte indicates a sequence number from 00h to FFh as the count serial number. This count serial number is notified as 00h when the power is turned on, and is incremented by 1 each time a notification is made. However, the next notification after FFh is set to 01h instead of 00h. The fourth byte indicates the counted medal number. The counted medal number is the number of electronic medals counted at the time of the count notification. The fifth byte indicates the counted cumulative medal number. The cumulative medal count is the accumulated medal count value after being cleared to 0000h when the medalless gaming machine 902 is turned on, and the value after FFFFh is 0000h. The seventh byte indicates a checksum.

図262は、貸出受領結果応答のフォーマットを説明するための説明図である。貸出受領結果応答は、専用ユニット904から貸出通知があった場合にその受領結果を応答するもので、電文長は5バイトの固定長となっている。具体的に、電文の1バイト目には電文長(05h)が示され、2バイト目にはコマンドの種別(ここでは貸出受領結果応答)を示す「03h」が示される。3バイト目には、貸出通番として00h~FFhのシーケンス番号が示される。かかる貸出通番は、電源投入時に00hを通知し、後述する貸出メダル数受領結果が正常であれば、専用ユニット904から受信した貸出通番をそのまま反映し、貸出メダル数受領結果が異常であれば、それ以前において、専用ユニット904から貸出メダル数受領結果を正常に受信したときの貸出通番を反映する。4バイト目には、貸出メダル数受領結果(正常=00h、異常=01h)が示される。5バイト目には、チェックサムが示される。 Figure 262 is an explanatory diagram for explaining the format of the loan receipt result response. The loan receipt result response is a response of the receipt result when a loan notification is received from the dedicated unit 904, and the message length is a fixed length of 5 bytes. Specifically, the first byte of the message indicates the message length (05h), and the second byte indicates "03h" indicating the type of command (here, loan receipt result response). The third byte indicates a sequence number of 00h to FFh as the loan serial number. This loan serial number is notified as 00h when the power is turned on, and if the loan medal count reception result described later is normal, it reflects the loan serial number received from the dedicated unit 904 as it is, and if the loan medal count reception result is abnormal, it reflects the loan serial number when the loan medal count reception result was normally received from the dedicated unit 904 earlier. The fourth byte indicates the loan medal count reception result (normal = 00h, abnormal = 01h). The fifth byte indicates a checksum.

また、専用ユニット904からメダルレス遊技機902(ここでは、例えば、メダル数制御CPU946)には、以下の貸出通知が行われる。 In addition, the following loan notification is sent from the dedicated unit 904 to the medalless gaming machine 902 (here, for example, the medal count control CPU 946):

図263は、貸出通知のフォーマットを説明するための説明図である。貸出通知は、メダルレス遊技機902から計数通知を受信した場合に、貸出メダル数をメダルレス遊技機902に伝達するもので、電文長は5バイトの固定長となっている。具体的に、電文の1バイト目には電文長(05h)が示され、2バイト目にはコマンドの種別(ここでは貸出通知)を示す「13h」が示される。3バイト目には、貸出通番として00h~FFhのシーケンス番号が示される。かかる貸出通番は、電源投入時に00hを通知し、通知の度に1だけインクリメントする。ただし、FFhの次の通知では00hではなく01hとする。4バイト目には、貸出メダル数が示される。貸出メダル数は、電子化メダルの貸出枚数を示す。なお、遊技機情報通知を受信していない場合、遊技機情報種別「02h:ホールコン・不正監視情報」以外で通知された場合、計数通知の計数メダル数が「1」以上で通知された場合は、貸出メダル数「0」が通知される。5バイト目には、チェックサムが示される。 Figure 263 is an explanatory diagram for explaining the format of the loan notification. The loan notification transmits the number of loaned medals to the medalless gaming machine 902 when a counting notification is received from the medalless gaming machine 902, and the message length is a fixed length of 5 bytes. Specifically, the first byte of the message indicates the message length (05h), and the second byte indicates "13h" indicating the type of command (here, loan notification). The third byte indicates a sequence number from 00h to FFh as the loan serial number. This loan serial number is notified as 00h when the power is turned on, and is incremented by 1 for each notification. However, the notification following FFh is set to 01h instead of 00h. The fourth byte indicates the number of loaned medals. The number of loaned medals indicates the number of electronic medals loaned. If no gaming machine information notification has been received, if a gaming machine information type other than "02h: Hall control/fraud monitoring information" has been received, or if the counted medal number in the count notification is "1" or more, the number of lent medals "0" will be notified. The fifth byte indicates a checksum.

なお、メダルレス遊技機902は、内部で特定の異常が生じた場合、専用ユニット904との通信を行わないとすることができる。例えば、特定の異常として、バックアップ異常、RAM(RWM)異常が生じた場合や、メーカコードが不一致であると、メダルレス遊技機902のメダル数制御CPU946は、その起動処理を完了することなく動作停止エラーを発し、専用ユニット904との通信開始を制限する。 If a specific internal abnormality occurs in the medalless gaming machine 902, the medalless gaming machine 902 can be configured not to communicate with the dedicated unit 904. For example, if a specific abnormality occurs such as a backup abnormality or a RAM (RWM) abnormality, or if the manufacturer code does not match, the medal count control CPU 946 of the medalless gaming machine 902 issues an operation stop error without completing the startup process, and restricts the start of communication with the dedicated unit 904.

図264は、遊技機情報通知、計数通知、貸出通知、貸出受領結果応答の通知タイミングを示したタイミングチャートである。図264に示すように、メダルレス遊技機902(ここでは、例えば、メダル数制御CPU946)は、メダルレス遊技機902の起動完了から300msec(300msec以上、310msec以内)周期で、遊技機情報通知を専用ユニット904に送信する。また、メダルレス遊技機902は、遊技機情報通知開始から100msec(90msec以上、100msec以内)で計数通知を専用ユニット904に送信する。専用ユニット904は、計数通知の受信開始から170msec以内に貸出通知をメダルレス遊技機902に送信する。メダルレス遊技機902は、貸出通知の受信完了後、10msec以内に貸出受領結果応答を専用ユニット904に通知する。こうして、メダルレス遊技機902が貸出受領結果応答を通知してから、次の遊技機情報通知を行うまでに20msec以上の時間を確保できる。 Figure 264 is a timing chart showing the notification timing of gaming machine information notification, counting notification, loan notification, and loan receipt result response. As shown in Figure 264, the medalless gaming machine 902 (here, for example, the medal count control CPU 946) transmits a gaming machine information notification to the dedicated unit 904 at intervals of 300 msec (300 msec or more, 310 msec or less) from the completion of startup of the medalless gaming machine 902. In addition, the medalless gaming machine 902 transmits a counting notification to the dedicated unit 904 100 msec (90 msec or more, 100 msec or less) from the start of the gaming machine information notification. The dedicated unit 904 transmits a loan notification to the medalless gaming machine 902 within 170 msec from the start of receiving the counting notification. After completing receipt of the loan notification, the medal-less gaming machine 902 notifies the dedicated unit 904 of the loan receipt result response within 10 msec. In this way, a time of 20 msec or more can be secured between the time when the medal-less gaming machine 902 notifies the loan receipt result response and the time when the next gaming machine information notification is made.

図265は、遊技機情報通知の送信タイミングを説明するための説明図である。遊技機情報通知は、上記のように、300msec周期で専用ユニット904に通知される。遊技機情報通知には、遊技機情報として遊技機性能情報、遊技機設置情報、ホールコン・不正監視情報の3つがあり、図265のように、それぞれ送信タイミングと優先順位が異なる。例えば、遊技機設置情報は、メダルレス遊技機902の起動が完了してから60sec経過後に通知され、それ以後は60sec周期で通知される。また、遊技機性能情報は、メダルレス遊技機902の起動が完了してから180sec経過後に通知され、それ以後は180sec周期で通知される。ホールコン・不正監視情報は、メダルレス遊技機902の起動が完了してから300msec周期で通知される。ただし、3つの通知は、その送信タイミングが重なる場合がある。送信タイミングが重なった場合、遊技機情報通知は、優先順位に従って順次通知される。例えば、180secにおいて、遊技機性能情報と、遊技機設置情報と、ホールコン・不正監視情報とが重なった場合、ホールコン・不正監視情報において主制御状態の更新がなく、かつ、遊技情報がなければ、まず、優先順位が高い遊技機設置情報が通知され、次の300msec後に遊技機性能情報が通知され、次の300msec後にホールコン・不正監視情報が通知される。また、60secにおいて、遊技機設置情報と、ホールコン・不正監視情報とが重なった場合、ホールコン・不正監視情報において主制御状態の更新がなく、かつ、遊技情報がなければ、まず、優先順位が高い遊技機設置情報が通知され、次の300msec後にホールコン・不正監視情報が通知される。ただし、ホールコン・不正監視情報において主制御状態の更新がある、または、遊技情報があれば、まず、優先順位が高いホールコン・不正監視情報が通知され、その後に、遊技機設置情報、遊技機性能情報が通知される。かかる構成により、メダルレス遊技機902と専用ユニット904とは、遊技機情報通知(遊技機性能情報、遊技機設置情報、ホールコン・不正監視情報)、計数通知、貸出通知、貸出受領結果応答を、適切なタイミングかつ適切な優先度で確認し合うことができる。 Figure 265 is an explanatory diagram for explaining the transmission timing of the gaming machine information notification. As described above, the gaming machine information notification is notified to the dedicated unit 904 at 300 msec intervals. The gaming machine information notification includes three types of gaming machine information: gaming machine performance information, gaming machine installation information, and hall control/fraud monitoring information, and as shown in Figure 265, each has a different transmission timing and priority. For example, the gaming machine installation information is notified 60 sec after the start-up of the medalless gaming machine 902 is completed, and is notified at 60 sec intervals thereafter. The gaming machine performance information is notified 180 sec after the start-up of the medalless gaming machine 902 is completed, and is notified at 180 sec intervals thereafter. The hall control/fraud monitoring information is notified at 300 msec intervals after the start-up of the medalless gaming machine 902 is completed. However, the transmission timing of the three notifications may overlap. When the transmission timings overlap, the gaming machine information notification is notified in order of priority. For example, when the gaming machine performance information, the gaming machine installation information, and the hall control/fraud monitoring information overlap in 180 sec, if there is no update of the main control state in the hall control/fraud monitoring information and there is no game information, the gaming machine installation information with the higher priority is notified first, the gaming machine performance information is notified after the next 300 msec, and the hall control/fraud monitoring information is notified after the next 300 msec. Also, when the gaming machine installation information and the hall control/fraud monitoring information overlap in 60 sec, if there is no update of the main control state in the hall control/fraud monitoring information and there is no game information, the gaming machine installation information with the higher priority is notified first, and the hall control/fraud monitoring information is notified after the next 300 msec. However, if there is an update to the main control state in the hall control/fraud monitoring information or if there is game information, the hall control/fraud monitoring information, which has a higher priority, is notified first, followed by the gaming machine installation information and gaming machine performance information. With this configuration, the medal-less gaming machine 902 and the dedicated unit 904 can confirm gaming machine information notifications (gaming machine performance information, gaming machine installation information, hall control/fraud monitoring information), counting notifications, loan notifications, and loan receipt result responses with the appropriate timing and priority.

(RAMでの保持内容)
なお、ここでは、図254(a)および図254(b)を用いて説明したように、メインCPU500aとメダル数制御CPU946とをそれぞれ別体で設け、それぞれのCPUが独立してROMおよびRAMを有し、独立したプログラムに基づいて処理を行う例を挙げて説明した。ただし、例えば、総投入枚数、総払出枚数、MY(最大MY)、役物総払出枚数、連続役物総払出枚数、遊技回数といった情報は、共通して、電源のONで累積が開始され、電断後の復電でリセットされるまで蓄積が維持される情報である。ここで、メインCPU500aが情報の一部を管理し、メダル数制御CPU946が他の情報を独立して管理するとした場合、以下の問題が生じる。すなわち、仮に、メインCPU500aとメダル数制御CPU946のうちいずれか一方の電源がOFFされ、他方の電源がONのままとなると、例えば、総投入枚数と総払出枚数とはリセットされた状態からカウントされているのに、役物総払出枚数、連続役物総払出枚数がリセットされずに累積された状態でカウントされるといった事象が生じるおそれがある。したがって、総投入枚数、総払出枚数、MY(最大MY)、役物総払出枚数、連続役物総払出枚数、遊技回数といった累積を伴う情報は、一方のCPUで管理することとする。例えば、ここでは、メインCPU500aが、かかる情報を全て管理する。かかる構成により、情報の不整合を回避することができ、遊技を適切に進行することが可能となる。
(Contents stored in RAM)
As explained with reference to Fig. 254(a) and Fig. 254(b), the main CPU 500a and the medal count control CPU 946 are provided separately, and each CPU has an independent ROM and RAM, and processes based on an independent program. However, for example, information such as the total number of inserted coins, the total number of paid out coins, MY (maximum MY), the total number of payout coins for special features, the total number of payout coins for consecutive special features, and the number of games are information that starts accumulating when the power is turned on and is maintained until reset when the power is restored after a power outage. Here, if the main CPU 500a manages part of the information and the medal count control CPU 946 manages the other information independently, the following problem will occur. That is, if the power supply of either the main CPU 500a or the medal count control CPU 946 is turned off and the power supply of the other is kept on, for example, the total number of inserted coins and the total number of paid coins are counted from a reset state, but the total number of paid coins for consecutively played coins are counted in an accumulated state without being reset. Therefore, information involving accumulation such as the total number of inserted coins, the total number of paid coins, MY (maximum MY), the total number of paid coins for consecutively played coins, and the number of games is managed by one of the CPUs. For example, here, the main CPU 500a manages all such information. With such a configuration, it is possible to avoid inconsistencies in information and to appropriately progress the game.

(エラーの優先順位)
ここで、メインCPU500aにおけるエラーに加えて、メダル数制御CPU946においても独自のエラー判定処理を行うように設定したとする。かかる設定では、メインCPU500aとメダル数制御CPU946において同タイミングでエラーが生じた場合、メインCPU500aで生じたエラーを優先して、メインクレジット表示部430やメイン払出表示部432、スピーカ428等のデバイスで報知するとしてもよい。なお、メインCPU500aとメダル数制御CPU946において同タイミングで生じ得る特定エラー(例えば、バックアップのエラー、RAMの読み書きが異常であることを示すエラーなどの重大な問題を有すると判定されるエラー)を設定しておき、メインCPU500aとメダル数制御CPU946において同タイミングでエラーが生じた場合、その特定エラーをデバイスで報知するとしてもよい。また、メダル数制御CPU946において同タイミングで複数のエラーが生じた場合、最も新たに生じたエラーを優先して、遊技メダル数表示装置924等のデバイスで報知するとしてもよい。また、かかる場合に限らず、複数のエラーに対し予め優先順位を設定しておき、メダル数制御CPU946において同タイミングで複数のエラーが生じた場合、設定された優先順位に基づいてエラーを報知するとしてもよい。このようにエラーを報知する優先順位を予め定めることで、エラーの緊急度や優先順位に応じ、迅速かつ効果的な対応を行うことが可能となる。例えば、複数のエラーが生じた場合、優先順位が高い1のエラーが報知される。ここで、エラーの原因を取り除き、エラーの解除操作を行うと、その時点の1のエラー報知が消去され、次に優先順位が高いエラーが順次報知される。すなわち、1の解除操作に応じて1のエラー報知が消去されることとなる。また、このような1の解除操作に応じて1のエラー報知が消去されるように制御する場合のみならず、1の解除操作に応じて、エラーの原因が取り除かれた複数のエラー報知が同時に消去されるように制御することもできる。その場合、エラーの解除操作を行うと、エラーの原因が取り除かれた複数のエラー報知が消去され、エラーの原因が取り除かれていないエラーのうち最も優先順位の高いエラーが報知される。なお、メダル数制御基板920において、別途、7セグメント等の個別デバイスを設置しておき、メダル数制御CPU946においてエラーが生じた場合、遊技メダル数表示装置924の代わりに、または、加えて当該個別デバイスで報知してもよい。
(Error Priority)
Here, it is assumed that in addition to the error in the main CPU 500a, the medal count control CPU 946 is also set to perform its own error determination process. In such a setting, if an error occurs in the main CPU 500a and the medal count control CPU 946 at the same timing, the error occurring in the main CPU 500a may be given priority and notified by devices such as the main credit display unit 430, the main payout display unit 432, and the speaker 428. Note that specific errors that may occur at the same timing in the main CPU 500a and the medal count control CPU 946 (for example, errors that are determined to have a serious problem such as a backup error or an error indicating that the RAM reading and writing is abnormal) may be set, and if an error occurs at the same timing in the main CPU 500a and the medal count control CPU 946, the specific error may be notified by a device. Also, if multiple errors occur at the same timing in the medal count control CPU 946, the most recently occurring error may be given priority and notified by a device such as the game medal count display device 924. In addition, it is also possible to set priorities for multiple errors in advance, and when multiple errors occur at the same timing in the medal count control CPU 946, the errors may be notified based on the set priorities. By predetermining the priorities for notifying errors in this way, it is possible to respond quickly and effectively according to the urgency and priority of the error. For example, when multiple errors occur, an error with a high priority is notified. Here, when the cause of the error is removed and an error release operation is performed, the error notification with the highest priority at that time is erased, and the error with the next highest priority is sequentially notified. That is, the error notification with the first release operation is erased. In addition, not only in the case where the error notification with the first release operation is controlled to be erased, but also in the case where multiple error notifications with the cause of the error removed are controlled to be erased simultaneously in response to the first release operation. In that case, when the error release operation is performed, multiple error notifications with the cause of the error removed are erased, and the error with the highest priority among the errors with the cause of the error not removed is notified. In addition, an individual device such as a 7-segment device may be installed separately on the medal count control board 920, and if an error occurs in the medal count control CPU 946, the individual device may be used to notify the error instead of or in addition to the game medal count display device 924.

(RAM異常)
また、エラーのうちRAM異常に対する処理は、メインCPU500aにおいては、使用外領域において行うとし、メダル数制御CPU946においては、使用領域で行うとする。これは、メインCPU500aにおいては、使用領域の容量に余裕がなく、メダル数制御CPU946においては、使用領域の容量に余裕があるからである。かかる構成により、メインROM500bにおけるメモリ容量の増加を抑制しつつ、遊技を適切に進行することが可能となる。
(RAM abnormality)
Furthermore, among errors, processing for RAM abnormalities is performed in a non-used area in the main CPU 500a, and in a used area in the medal count control CPU 946. This is because the main CPU 500a does not have a sufficient capacity for the used area, but the medal count control CPU 946 has a sufficient capacity for the used area. This configuration makes it possible to appropriately progress with the game while suppressing an increase in the memory capacity of the main ROM 500b.

(VL接続信号)
図254を用いて説明したように、遊技球等貸出装置接続端子板948は、専用ユニット904から電力の供給を受け、かかる電力をフォトカプラ等の絶縁素子の入力とし、専用ユニット904との接続状態を示すVL接続信号(特定接続信号)を生成してメダル数制御基板920のメダル数制御CPU946に出力している。なお、メダル数制御CPU946は、VL接続信号を受け取った旨のコマンドをメインCPU500aに送信してもよいし、送信しないとしてもよい。メダル数制御CPU946がVL接続信号を受け取った旨のコマンドをメインCPU500aに送信する場合、メインCPU500aは、当該コマンドがVL接続信号の受信を示しているか否かに応じて、主制御基板500のみ、メダル数制御基板920のみ、または、主制御基板500およびメダル数制御基板920の起動を制限(禁止)したり、遊技の進行を停止することができる。また、メダル数制御CPU946がVL接続信号を受け取った旨のコマンドをメインCPU500aに送信しない場合、メダル数制御CPU946は、個別に、メダル数制御基板920の起動を制限(禁止)したり、遊技の進行を停止することができる。
(VL connection signal)
As described with reference to FIG. 254, the game ball etc. dispensing device connection terminal board 948 receives power from the dedicated unit 904, uses the power as input to an insulating element such as a photocoupler, generates a VL connection signal (specific connection signal) indicating the connection state with the dedicated unit 904, and outputs it to the medal count control CPU 946 of the medal count control board 920. The medal count control CPU 946 may or may not transmit a command to the main CPU 500a indicating that it has received the VL connection signal. When the medal count control CPU 946 transmits a command to the main CPU 500a indicating that it has received the VL connection signal, the main CPU 500a can restrict (prohibit) the start of only the main control board 500, only the medal count control board 920, or both the main control board 500 and the medal count control board 920, or stop the progress of the game, depending on whether the command indicates the reception of the VL connection signal. In addition, if the medal count control CPU 946 does not send a command to the main CPU 500a indicating that it has received a VL connection signal, the medal count control CPU 946 can individually restrict (prohibit) the startup of the medal count control board 920 or stop the progress of the game.

ここで、VL接続信号がONであれば、メダルレス遊技機902は、専用ユニット904と適切に接続され、かつ、専用ユニット904の電源がONしていると判断できるので、メインCPU500aや専用ユニット904を対象とした各処理を遂行することができる。一方、VL接続信号がOFFであれば、メダルレス遊技機902は、専用ユニット904と適切に接続されていない(未接続)、または、専用ユニット904の電源がOFFしていると判断し、遊技の進行を制限する。具体的に、メダルレス遊技機902は、VL接続信号がOFFであれば、遊技停止処理を実行する。かかる遊技停止処理では、主制御基板500のエラー状態として遊技を制限(電子化メダルのベット、電子化メダルの精算、スタートスイッチ418の操作に基づく遊技進行のための処理、および、計数処理を全て制限(禁止))している。このとき、VL接続信号がOFFであれば、メインCPU500aおよびメダル数制御CPU946を立ち上げないとしてもよい。 If the VL connection signal is ON, the medalless gaming machine 902 can determine that it is properly connected to the dedicated unit 904 and that the power supply of the dedicated unit 904 is ON, and can therefore execute various processes targeted at the main CPU 500a and the dedicated unit 904. On the other hand, if the VL connection signal is OFF, the medalless gaming machine 902 determines that it is not properly connected to the dedicated unit 904 (not connected) or that the power supply of the dedicated unit 904 is OFF, and restricts the progress of the game. Specifically, if the VL connection signal is OFF, the medalless gaming machine 902 executes a game stop process. In this game stop process, the game is restricted as an error state of the main control board 500 (electronic medal bets, electronic medal settlement, processing for game progress based on the operation of the start switch 418, and counting processing are all restricted (prohibited)). At this time, if the VL connection signal is OFF, the main CPU 500a and medal count control CPU 946 may not be started.

ここで、計数処理は、遊技者の計数スイッチ922の操作に応じて、メダル保持部に保持された電子化メダルの一部または全部を専用ユニット904に転送する処理を言う。具体的に、計数スイッチ922が受け付けられていない場合、メダル保持部の遊技メダル数が0枚の場合、VL接続信号がOFFの場合、および、計数不可状態の場合には、計数メダル数(計数価値数)として「0」が設定され、計数スイッチ922の短押しを受け付けた場合には、計数メダル数として「1」が設定される。計数スイッチ922の長押しを受け付けると、メダル保持部の遊技メダル数が50枚未満の場合、計数メダル数として全部の電子化メダル(遊技メダル数)が設定され、50枚以上の場合、計数メダル数として「50」が設定される。そして、計数累積メダル数に当該計数メダル数が加算されるとともに、計数通番が更新される。メダルレス遊技機902は、計数通知の電文のデータ列を整数値の列とみなして和を求めるチェックサムを実行し、専用ユニット904に計数通知を行う。これと並行して、メダル保持部で保持された遊技メダル数から計数メダル数が減算される。 Here, the counting process refers to a process of transferring some or all of the electronic medals held in the medal holding section to the dedicated unit 904 in response to the player's operation of the counting switch 922. Specifically, when the counting switch 922 is not being accepted, when the number of game medals in the medal holding section is 0, when the VL connection signal is OFF, and when counting is not possible, the counted medal number (counting value number) is set to "0", and when a short press of the counting switch 922 is accepted, the counted medal number is set to "1". When a long press of the counting switch 922 is accepted, if the number of game medals in the medal holding section is less than 50, all of the electronic medals (game medal number) are set as the counted medal number, and if it is 50 or more, the counted medal number is set to "50". Then, the counted medal number is added to the cumulative counted medal number, and the counting serial number is updated. The medal-less gaming machine 902 executes a checksum to find the sum of the data string of the count notification message, treating it as a string of integer values, and sends a count notification to the dedicated unit 904. In parallel with this, the number of counted medals is subtracted from the number of game medals held in the medal holding section.

ここで、遊技が可能な間に計数スイッチ922が操作された場合、必ず計数処理が実行される。「遊技が可能な間」とは、メダルレス遊技機902と専用ユニット904とが接続され、かつ、共に電源がONされている状態(遊技者が電子化メダルを借り、メダルレス遊技機902で遊技を行い、当該遊技の結果を計数する一連の動作が可能な状態)を示す。なお、メダルレス遊技機902の電源はONされているが専用ユニット904の電源がONされていない場合、または、メダルレス遊技機902と専用ユニット904とが未接続であった場合は、メダルレス遊技機902が計数スイッチ922の操作を受け付けても当該計数メダル数が消失してしまうおそれがあるので、計数スイッチ922の操作を無効とし、その期間は「遊技が可能な間」に含めない。また、メダルレス遊技機902が単体として遊技を進行しない(できない)状態となる、電源投入後の初期化処理中、設定変更中および設定確認中、ならびに、リセット等による復帰処理が必要なエラー状態中も、「遊技が可能な間」には含めない。かかる電源投入後の初期化処理中、設定変更中および設定確認中、ならびに、リセット等による復帰処理が必要なエラー状態中においては、計数処理を実行させるとしてもよいし、実行させないとしてもよい。 Here, if the counting switch 922 is operated while play is possible, the counting process is always executed. "While play is possible" refers to a state in which the medalless gaming machine 902 and the dedicated unit 904 are connected and both are powered on (a state in which a series of operations is possible in which a player borrows an electronic medal, plays a game on the medalless gaming machine 902, and counts the results of the game). Note that if the medalless gaming machine 902 is powered on but the dedicated unit 904 is not, or if the medalless gaming machine 902 and the dedicated unit 904 are not connected, even if the medalless gaming machine 902 accepts the operation of the counting switch 922, there is a risk that the counted medal number will be lost. Therefore, the operation of the counting switch 922 is invalidated, and this period is not included in "while play is possible". Additionally, periods during which the medal-less gaming machine 902 is not (cannot be) used to play on its own, such as during initialization processing after power-on, during settings being changed or checked, and during an error state that requires recovery processing by resetting or the like, are not included in "periods during which play is possible." During periods during initialization processing after power-on, during settings being changed or checked, and during an error state that requires recovery processing by resetting or the like, counting processing may or may not be performed.

このように、VL接続信号がONであれば、メダルレス遊技機902では、遊技を進行するとともに、遊技が可能な間、計数処理を受け付ける。一方、VL接続信号がOFFであれば、メダルレス遊技機902では、遊技停止処理を実行し、電子化メダルのベット、電子化メダルの精算、スタートスイッチ418の操作に基づく遊技進行のための処理、および、上述した計数処理を全て制限(禁止)する。これは、上述したように、VL接続信号がOFFということは、メダルレス遊技機902が専用ユニット904と適切に接続されていない、または、専用ユニット904の電源がOFFしていると判断できるからである。 In this way, if the VL connection signal is ON, the medalless gaming machine 902 allows play to proceed and accepts counting processing while play is possible. On the other hand, if the VL connection signal is OFF, the medalless gaming machine 902 executes game stop processing and restricts (prohibits) all of the following: betting electronic medals, settling electronic medals, processing for game progress based on operation of the start switch 418, and the counting processing described above. This is because, as described above, if the VL connection signal is OFF, it can be determined that the medalless gaming machine 902 is not properly connected to the dedicated unit 904, or that the power supply to the dedicated unit 904 is OFF.

図264を用いて説明したように、メダルレス遊技機902(例えば、メダル数制御CPU946)は、計数メダル数の情報を含む計数通知を専用ユニット904に送信する。ここで、例えば、メダルレス遊技機902と専用ユニット904とが適切に接続されていない(例えば、未接続)、または、専用ユニット904の電源がOFFしているなどのように、専用ユニット904において、計数通知を受け付ける準備が適切に完了していない場合に、メダルレス遊技機902が計数スイッチ922の入力操作(例えば、押圧操作)を受け付けて当該計数通知を専用ユニット904に送信すると、当該入力操作に基づく計数メダル数が消失してしまうおそれがある。計数メダル数が消失すると、電子化メダルの総数が減少し、電子化メダルの不整合が生じる。本実施形態において、不整合とは、電子化メダルの意図しない消失や増量により、遊技メダル数と、専用ユニット904で保持する電子化メダルの総数である獲得メダル数とを合計した電子化メダルの総数が、計数スイッチ922の入力操作の前後で異なることをいう。例えば、計数スイッチ922により遊技メダル数の全数を計数した場合に、メダルレス遊技機902に計数前に保持されていた遊技メダル数と、計数により専用ユニット904に転送された獲得メダル数とが異なった場合、不整合が生じたことになる。 As described with reference to FIG. 264, the medalless gaming machine 902 (e.g., medal count control CPU 946) transmits a counting notification including information on the counted medal count to the dedicated unit 904. Here, if the medalless gaming machine 902 and the dedicated unit 904 are not properly connected (e.g., not connected) or the dedicated unit 904 is powered off, and the dedicated unit 904 is not properly prepared to receive the counting notification, when the medalless gaming machine 902 receives an input operation (e.g., a pressing operation) of the counting switch 922 and transmits the counting notification to the dedicated unit 904, there is a risk that the counted medal count based on the input operation will be lost. If the counted medal count is lost, the total number of electronic medals will decrease, and an inconsistency in the electronic medals will occur. In this embodiment, an inconsistency refers to a situation in which the total number of digitized medals, which is the sum of the number of game medals and the number of acquired medals, which is the total number of digitized medals held in the dedicated unit 904, differs before and after the input operation of the counting switch 922, due to unintended loss or increase of digitized medals. For example, when the total number of game medals is counted using the counting switch 922, if the number of game medals held in the medal-less gaming machine 902 before counting differs from the number of acquired medals transferred to the dedicated unit 904 by counting, an inconsistency has occurred.

そこで、メダルレス遊技機902(例えば、メダル数制御CPU946)は、計数通知を専用ユニット904に送る前に、専用ユニット904との接続状態を示すVL接続信号のON/OFFを確認することによって、専用ユニット904の接続有無を判定する。VL接続信号が、専用ユニット904が接続されていないことを示すOFFの場合、計数処理自体を制限するため、メダルレス遊技機902は、計数メダル数を「0」に設定する。 The medalless gaming machine 902 (e.g., medal count control CPU 946) therefore checks whether the dedicated unit 904 is connected or not by checking the ON/OFF state of a VL connection signal indicating the connection status with the dedicated unit 904 before sending a counting notification to the dedicated unit 904. If the VL connection signal is OFF, indicating that the dedicated unit 904 is not connected, the medalless gaming machine 902 sets the counted medal number to "0" to limit the counting process itself.

計数メダル数が「0」に設定されると、メダルレス遊技機902は、遊技メダル数から計数メダル数「0」を減算して遊技メダル数を更新する。つまり、更新後の遊技メダル数は、実質的に更新前から変化しない。メダルレス遊技機902は、更新後の遊技メダル数を遊技メダル数表示装置924に表示する。遊技メダル数が実質的に変化しないため、遊技メダル数表示装置924の表示も変化しない。 When the counted medal count is set to "0", the medalless gaming machine 902 updates the gaming medal count by subtracting the counted medal count of "0" from the gaming medal count. In other words, the updated gaming medal count does not substantially change from before the update. The medalless gaming machine 902 displays the updated gaming medal count on the gaming medal count display device 924. Because the gaming medal count does not substantially change, the display on the gaming medal count display device 924 does not change either.

また、メダルレス遊技機902は、「0」に設定された計数メダル数の情報を含む計数通知を専用ユニット904に送信する。専用ユニット904が未接続であるとすると、専用ユニット904は当該計数通知を適切に受信できないため、獲得メダル数は変化しない。獲得メダル数が変化しないため、獲得メダル数表示装置944の表示も変化しない。 The medalless gaming machine 902 also transmits a counting notification to the dedicated unit 904, including information on the number of counted medals that has been set to "0." If the dedicated unit 904 is not connected, the dedicated unit 904 cannot properly receive the counting notification, and so the number of acquired medals does not change. As the number of acquired medals does not change, the display on the acquired medal count display device 944 does not change either.

このように、計数メダル数が「0」に設定されることで、メダルレス遊技機902の遊技メダル数および専用ユニット904の獲得メダル数の両方が変化しないため、電子化メダルの総数も変化しない。このため、メダルレス遊技機902では、計数処理が実行されることはなく、計数スイッチ922の入力操作に応じて電子化メダルが消失してしまうことを回避することができる。すなわち、メダルレス遊技機902では、電子化メダルの不整合が生じることを回避することができる。 In this way, by setting the number of counted medals to "0", both the number of game medals in the medalless gaming machine 902 and the number of medals acquired by the dedicated unit 904 do not change, and the total number of digitized medals does not change either. As a result, the medalless gaming machine 902 does not execute a counting process, and it is possible to prevent digitized medals from disappearing in response to an input operation of the counting switch 922. In other words, the medalless gaming machine 902 is able to avoid inconsistencies in the digitized medals.

図266は、メダル数制御CPU946における計数スイッチ監視処理の流れを示したフローチャートである。計数スイッチ監視処理は、計数スイッチ922が押圧操作されたときに実行される。ここでは、本実施形態に関係する処理を説明し、本実施形態に関係しない処理は省略する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。 Figure 266 is a flow chart showing the flow of the count switch monitoring process in the medal count control CPU 946. The count switch monitoring process is executed when the count switch 922 is pressed. Here, the process related to this embodiment will be explained, and processes unrelated to this embodiment will be omitted. The numerical values of step S in this figure will be used only in the explanation of this figure.

図266に示すように、メダル数制御CPU946は、計数スイッチ922の押圧を検出すると、具体的には、計数スイッチ922のONエッジを検出すると(S1におけるYES)、VL接続信号を取得し、VL接続信号がONであるか否かを判定する(S2)。VL接続信号がONである場合(S2におけるYES)、メダル数制御CPU946は、メダルレス遊技機902が有する計時カウンタの計時を開始する(S3)。計時カウンタは、計数スイッチ922のONエッジの検出に応じて計時を開始し、当該ONエッジからOFFエッジまでを計時する。次に、メダル数制御CPU946は、計数スイッチ922のOFFエッジを検出したか否かを判定する(S4)。計数スイッチ922のOFFエッジが検出されていない場合(S4におけるNO)、メダル数制御CPU946は、計時カウンタの計時開始から所定時間(例えば、500msec)が経過したか否かを判定する(S5)。所定時間が経過していない場合(S5におけるNO)、メダル数制御CPU946は、ステップS4の処理に戻る。所定時間が経過した場合(S5におけるYES)、メダル数制御CPU946は、長押しフラグをONに設定して(S6)、ステップS4の処理に戻る。長押しフラグは、長押しを識別するためのフラグであり、ONの場合、長押しであることを示し、OFFの場合、長押しではない(すなわち、短押しである)ことを示す。 266, when the medal count control CPU 946 detects the pressing of the counting switch 922, specifically, when it detects the ON edge of the counting switch 922 (YES in S1), it acquires a VL connection signal and judges whether the VL connection signal is ON or not (S2). When the VL connection signal is ON (YES in S2), the medal count control CPU 946 starts the timing of the timing counter of the medalless gaming machine 902 (S3). The timing counter starts timing in response to the detection of the ON edge of the counting switch 922, and measures the time from the ON edge to the OFF edge. Next, the medal count control CPU 946 judges whether the OFF edge of the counting switch 922 is detected (S4). When the OFF edge of the counting switch 922 is not detected (NO in S4), the medal count control CPU 946 judges whether a predetermined time (for example, 500 msec) has elapsed since the start of the timing of the timing counter (S5). If the predetermined time has not elapsed (NO in S5), the medal count control CPU 946 returns to the process of step S4. If the predetermined time has elapsed (YES in S5), the medal count control CPU 946 sets the long press flag to ON (S6) and returns to the process of step S4. The long press flag is a flag for identifying a long press; when it is ON, it indicates a long press, and when it is OFF, it indicates that it is not a long press (i.e., a short press).

計数スイッチのOFFエッジが検出された場合(S4におけるYES)、メダル数制御CPU946は、長押しフラグがOFFであるか否かを判定する(S7)。長押しフラグがOFFである場合(S7におけるYES)、メダル数制御CPU946は、計数メダル数を「1」に設定し、ステップS9の処理に進む。設定された計数メダル数は、所定のレジスタまたはRAMに記憶される。長押しフラグがONである場合(S7におけるNO)、メダル数制御CPU946は、ステップS9の処理に進む。ステップS9において、メダル数制御CPU946は、長押しフラグをクリアする(OFFにする)。メダル数制御CPU946は、計時カウンタをクリアし、計数スイッチ監視処理を終了する。 When the OFF edge of the counting switch is detected (YES in S4), the medal count control CPU 946 determines whether the long press flag is OFF or not (S7). When the long press flag is OFF (YES in S7), the medal count control CPU 946 sets the counted medal count to "1" and proceeds to processing in step S9. The set counted medal count is stored in a specified register or RAM. When the long press flag is ON (NO in S7), the medal count control CPU 946 proceeds to processing in step S9. In step S9, the medal count control CPU 946 clears (sets OFF) the long press flag. The medal count control CPU 946 clears the timing counter and ends the counting switch monitoring processing.

計数スイッチ922のONエッジを検出していない場合(S1におけるNO)、何ら処理を実行することなく計数スイッチ監視処理を終了する。VL接続信号がOFFである場合(S2におけるNO)、メダル数制御CPU946は、計数メダル数を「0」に設定し(S11)、計数スイッチ監視処理を終了する。なお、計数メダル数「0」は、所定のレジスタまたはRAMに記憶される。すなわち、計数スイッチ922が押圧操作されても、VL接続信号がOFFであれば、計数メダル数が「0」に設定されて、遊技者の電子化メダルの計数の操作を受け付けない、または、受け付けたとしても無効化する。 If the ON edge of the counting switch 922 is not detected (NO in S1), the counting switch monitoring process ends without executing any processing. If the VL connection signal is OFF (NO in S2), the medal count control CPU 946 sets the counted medal number to "0" (S11) and ends the counting switch monitoring process. The counted medal number "0" is stored in a specified register or RAM. In other words, even if the counting switch 922 is pressed, if the VL connection signal is OFF, the counted medal number is set to "0" and the player's operation to count the electronic medals is not accepted, or if accepted, is invalidated.

図267は、メダル数制御CPU946における計数処理の流れを示したフローチャートである。計数処理は、遊技メダル数の計数の更新に関する処理であり、計数スイッチ922の押圧操作に拘わらず、所定の周期(例えば、300ms)で繰り返される割込みタイミングに実行される。ここでは、本実施形態に関係する処理を説明し、本実施形態に関係しない処理は省略する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。 Figure 267 is a flowchart showing the flow of the counting process in the medal count control CPU 946. The counting process is a process related to updating the count of the number of game medals, and is executed at interrupt timings that are repeated at a predetermined cycle (e.g., every 300 ms) regardless of whether the count switch 922 is pressed. Here, the process related to this embodiment will be explained, and processes that are not related to this embodiment will be omitted. The numerical values of step S in this figure will be used only in the explanation of this figure.

図267に示すように、メダル数制御CPU946は、所定の周期で繰り返される割込みタイミングとなると、VL接続信号を取得し、VL接続信号がONであるか否かを判定する(S21)。VL接続信号がONである場合(S21におけるYES)、メダル数制御CPU946は、ステップS23の処理に進む。VL接続信号がOFFである場合(S21におけるNO)、メダル数制御CPU946は、計数メダル数を「0」に設定し(S22)、ステップS23の処理に進む。なお、計数メダル数「0」は、所定のレジスタまたはRAMに記憶される。ステップS23において、メダル数制御CPU946は、現在の遊技メダル数をメダル保持部から取得する(S23)。 As shown in FIG. 267, when an interrupt timing occurs, which is repeated at a predetermined cycle, the medal count control CPU 946 acquires a VL connection signal and determines whether the VL connection signal is ON or not (S21). If the VL connection signal is ON (YES in S21), the medal count control CPU 946 proceeds to processing of step S23. If the VL connection signal is OFF (NO in S21), the medal count control CPU 946 sets the counted medal number to "0" (S22) and proceeds to processing of step S23. The counted medal number "0" is stored in a predetermined register or RAM. In step S23, the medal count control CPU 946 acquires the current game medal number from the medal holding unit (S23).

次に、メダル数制御CPU946は、長押しフラグがONであるか否かを判定する(S24)。長押しフラグがONである場合(S24におけるYES)、メダル数制御CPU946は、ステップS23で取得した遊技メダル数が「50」以上であるか否かを判定する(S25)。遊技メダル数が「50」以上である場合(S25におけるYES)、メダル数制御CPU946は、計数メダル数を「50」に設定し(S26)、ステップS28の処理に進む。遊技メダル数が「50」未満である場合(S25におけるNO)、メダル数制御CPU946は、遊技メダル数を計数メダル数に設定し(S27)、ステップS28の処理に進む。ステップS26またはステップS27において設定された計数メダル数は、所定のレジスタまたはRAMに記憶される。また、長押しフラグがOFFである場合(S24におけるNO)、ステップS28の処理に進む。 Next, the medal count control CPU 946 judges whether the long press flag is ON (S24). If the long press flag is ON (YES in S24), the medal count control CPU 946 judges whether the game medal count acquired in step S23 is "50" or more (S25). If the game medal count is "50" or more (YES in S25), the medal count control CPU 946 sets the count medal count to "50" (S26) and proceeds to processing of step S28. If the game medal count is less than "50" (NO in S25), the medal count control CPU 946 sets the game medal count to the count medal count (S27) and proceeds to processing of step S28. The count medal count set in step S26 or step S27 is stored in a predetermined register or RAM. Also, if the long press flag is OFF (NO in S24), the process proceeds to processing of step S28.

ステップS28において、メダル数制御CPU946は、計数メダル数が記憶されているレジスタまたはRAMから、記憶されている最新の計数メダル数を取得する(S28)。例えば、今回の計数処理の直前に、計数スイッチ監視処理(図266参照)が行われて、計数メダル数が「1」に設定されたとする。この場合、計数処理(図267参照)のステップS28において、メダル数制御CPU946は、所定のレジスタまたはRAMに記憶されている計数メダル数「1」を取得する。また、今回の計数処理のステップS26において計数メダル数が「50」に設定された場合、メダル数制御CPU946は、所定のレジスタまたはRAMに記憶されている計数メダル数「50」を取得する。また、今回の計数処理のステップS27において「50」未満の遊技メダル数が計数メダル数に設定された場合、メダル数制御CPU946は、所定のレジスタまたはRAMに記憶されている「50」未満の遊技メダル数を計数メダル数として取得する。また、計数スイッチ監視処理(図266参照)のステップS11、または、計数処理(図267参照)のステップS22において、計数メダル数が「0」に設定された場合、メダル数制御CPU946は、所定のレジスタまたはRAMに記憶されている計数メダル数「0」を取得する。 In step S28, the medal count control CPU 946 acquires the latest stored medal count from the register or RAM in which the medal count is stored (S28). For example, assume that immediately before the current counting process, the count switch monitoring process (see FIG. 266) is performed and the medal count is set to "1". In this case, in step S28 of the counting process (see FIG. 267), the medal count control CPU 946 acquires the medal count "1" stored in a predetermined register or RAM. Also, if the medal count is set to "50" in step S26 of the current counting process, the medal count control CPU 946 acquires the medal count "50" stored in a predetermined register or RAM. Also, if the medal count is set to a medal count less than "50" in step S27 of the current counting process, the medal count control CPU 946 acquires the medal count less than "50" stored in a predetermined register or RAM as the medal count. Furthermore, if the counted medal count is set to "0" in step S11 of the count switch monitoring process (see FIG. 266) or in step S22 of the counting process (see FIG. 267), the medal count control CPU 946 acquires the counted medal count "0" stored in a specified register or RAM.

次に、メダル数制御CPU946は、取得した遊技メダル数から、取得した計数メダル数を減算して、遊技メダル数を更新する(S29)。例えば、取得した計数メダル数が「1」の場合、取得した現在の遊技メダル数から「1」を減算したメダル数が、更新後の(減算後の)遊技メダル数となる。また、取得した計数メダル数が「50」の場合、取得した現在の遊技メダル数から「50」を減算したメダル数が、更新後の遊技メダル数となる。また、「50」未満の遊技メダル数を計数メダル数として取得した場合、取得した現在の遊技メダル数から、計数メダル数として「50」未満の遊技メダル数全てを減算して、更新後の遊技メダル数は「0」となる。また、取得した計数メダル数が「0」の場合、取得した現在の遊技メダル数から「0」を減算したメダル数が、更新後の遊技メダル数となる。つまり、計数メダル数が「0」の場合、遊技メダル数は、実質的に変化しない。 Next, the medal count control CPU 946 updates the game medal count by subtracting the acquired count medal count from the acquired game medal count (S29). For example, if the acquired count medal count is "1", the medal count obtained by subtracting "1" from the acquired current game medal count becomes the updated (subtracted) game medal count. If the acquired count medal count is "50", the medal count obtained by subtracting "50" from the acquired current game medal count becomes the updated game medal count. If a game medal count less than "50" is acquired as the count medal count, all game medal counts less than "50" as the count medal count are subtracted from the acquired current game medal count, and the updated game medal count becomes "0". If the acquired count medal count is "0", the medal count obtained by subtracting "0" from the acquired current game medal count becomes the updated game medal count. In other words, if the count medal count is "0", the game medal count does not change substantially.

次に、メダル数制御CPU946は、遊技メダル数表示装置924における遊技メダル数の表示を、ステップS29で導出した遊技メダル数に更新する(S30)。次に、メダル数制御CPU946は、取得した計数メダル数の情報を含む計数通知を生成して専用ユニット904に送信する(S31)。次に、メダル数制御CPU946は、計数通知の完了に応じて計数メダル数をクリアし(S32)、計数処理を終了する。 Next, the medal count control CPU 946 updates the display of the number of game medals on the game medal count display device 924 to the number of game medals derived in step S29 (S30). Next, the medal count control CPU 946 generates a count notification including information on the acquired counted medal number and transmits it to the dedicated unit 904 (S31). Next, the medal count control CPU 946 clears the counted medal number in response to completion of the count notification (S32), and ends the counting process.

このように、メダル数制御CPU946は、VL接続信号のON/OFFを確認し、VL接続信号がOFFの場合、計数メダル数を「0」に設定する。このため、VL接続信号がOFFであれば、計数スイッチ922が押圧操作されたとしても、更新後の遊技メダル数は、更新前の遊技メダル数から実質的に変化しない。また、VL接続信号がOFFであれば、専用ユニット904は計数通知を適切に受信できないため、獲得メダル数も変化しない。このため、仮に、専用ユニット904が計数通知を受け付ける準備が適切に完了していないにも拘わらず、計数通知が送信されたとしても、メダルレス遊技機902では、電子化メダルが消失および増量せず、電子化メダルの不整合が生じることを回避することができる。 In this way, the medal count control CPU 946 checks whether the VL connection signal is ON/OFF, and if the VL connection signal is OFF, it sets the counted medal count to "0". Therefore, if the VL connection signal is OFF, even if the count switch 922 is pressed, the updated game medal count does not substantially change from the game medal count before the update. Also, if the VL connection signal is OFF, the dedicated unit 904 cannot properly receive the count notification, so the number of acquired medals does not change. Therefore, even if a count notification is sent when the dedicated unit 904 is not properly prepared to receive the count notification, in the medalless gaming machine 902, the electronic medals do not disappear or increase, and inconsistencies in the electronic medals can be avoided.

また、メダル数制御CPU946は、図266で示すように、遊技メダル数を更新する直前、換言すると、計数通知を送信する直前に、計数メダル数を「0」に設定する。このため、メダルレス遊技機902では、より確実に計数メダル数を「0」にすることができ、電子化メダルの不整合が生じることを、より確実に回避することができる。 In addition, as shown in FIG. 266, the medal count control CPU 946 sets the counted medal count to "0" immediately before updating the game medal count, in other words, immediately before sending the count notification. Therefore, in the medalless gaming machine 902, the counted medal count can be more reliably set to "0", and inconsistencies in the electronic medals can be more reliably avoided.

また、メダルレス遊技機902は、計数スイッチ監視処理と計数処理との両方において、VL接続信号のON/OFFを判定し、VL接続信号がOFFであれば、計数メダル数を「0」に設定する。これにより、例えば、計数スイッチ監視処理におけるVL接続信号の判定処理、および、計数処理におけるVL接続信号の判定処理のうち、VL接続信号がOFFとなってから先に実行されたVL接続信号の判定処理のタイミングで、計数メダル数が「0」に設定されるため、計数メダル数を、早期に「0」に設定することができる。また、メダルレス遊技機902は、計数スイッチ監視処理と計数処理との両方においてVL接続信号のON/OFFを判定するため、VL接続信号のON/OFFを判定する機会が2回あり、VL接続信号のON/OFFを判定する機会が1回の態様と比べ、より確実に、計数メダル数を「0」に設定することができる。 The medalless gaming machine 902 judges whether the VL connection signal is ON/OFF in both the counting switch monitoring process and the counting process, and sets the counted medal count to "0" if the VL connection signal is OFF. As a result, for example, the counted medal count is set to "0" at the timing of the VL connection signal judgment process executed first after the VL connection signal turns OFF, out of the VL connection signal judgment process in the counting switch monitoring process and the VL connection signal judgment process in the counting process, so the counted medal count can be set to "0" early. In addition, since the medalless gaming machine 902 judges whether the VL connection signal is ON/OFF in both the counting switch monitoring process and the counting process, there are two opportunities to judge whether the VL connection signal is ON/OFF, and the counted medal count can be set to "0" more reliably than in a mode in which there is only one opportunity to judge whether the VL connection signal is ON/OFF.

また、メダルレス遊技機902では、メダル数制御CPU946が計数スイッチ監視処理および計数処理を行う。メダル数制御基板920におけるROMまたはRAM(記憶部)が記憶可能な容量は、メインROM500bまたはメインRAM500c(記憶部)と比べて小さいが、処理負荷が少ないので、結果的に空き容量は大きい。このため、VL接続信号のON/OFFの判定およびVL接続信号がOFFのときに計数メダル数を「0」に設定する処理を、計数スイッチ監視処理および計数処理の両方で行うプログラムとしても、メダル数制御基板920における記憶可能な容量を圧迫することはない。 In addition, in the medalless gaming machine 902, the medal count control CPU 946 performs count switch monitoring processing and counting processing. The storage capacity of the ROM or RAM (storage unit) in the medal count control board 920 is smaller than that of the main ROM 500b or main RAM 500c (storage unit), but the processing load is small, so the free space is large as a result. Therefore, even if a program performs the ON/OFF determination of the VL connection signal and the processing of setting the count medal number to "0" when the VL connection signal is OFF in both the count switch monitoring processing and the counting processing, it does not put a strain on the storage capacity of the medal count control board 920.

なお、メダルレス遊技機902は、計数スイッチ監視処理および計数処理のいずれか一方において、VL接続信号のON/OFFの判定を行い、他方において、VL接続信号のON/OFFの判定を省略してもよい。この場合、計数スイッチ監視処理においてVL接続信号のON/OFFの判定を省略し、計数処理においてVL接続信号のON/OFFの判定を行う態様がより好ましい。また、メダルレス遊技機902では、遊技メダル数の更新や計数通知の前などにVL接続信号のON/OFFの判定が行われて、VL接続信号がOFFであれば計数メダル数が「0」に設定されればよく、計数スイッチ監視処理内や計数処理内においてVL接続信号のON/OFFを判定する態様に限らない。 The medalless gaming machine 902 may determine whether the VL connection signal is ON/OFF in either the counting switch monitoring process or the counting process, and may omit the ON/OFF determination of the VL connection signal in the other process. In this case, it is more preferable to omit the ON/OFF determination of the VL connection signal in the counting switch monitoring process, and to determine whether the VL connection signal is ON/OFF in the counting process. Also, in the medalless gaming machine 902, it is sufficient that the ON/OFF determination of the VL connection signal is performed before updating the number of game medals or notifying the count, and if the VL connection signal is OFF, the counted medal number is set to "0", and is not limited to the form in which the ON/OFF of the VL connection signal is determined in the counting switch monitoring process or the counting process.

(計数処理1)
上述したように、メダルレス遊技機902のメダル数制御CPU946は、遊技者の計数スイッチ922の操作に応じて、メダル保持部に保持された電子化メダルの少なくとも一部を専用ユニット904に転送する計数処理を行う。
(Counting process 1)
As described above, the medal count control CPU 946 of the medalless gaming machine 902 performs counting processing to transfer at least a portion of the electronic medals held in the medal holding section to the dedicated unit 904 in response to the player's operation of the counting switch 922.

図268は、計数処理を説明するためのタイミングチャートである。ここで、メダル数制御CPU946は、遊技者が所望する計数態様(短押しや長押し)を把握するため、計数スイッチ922が連続的に操作された時間を計時している。例えば、図268(a)に示すように、計数スイッチ922の短押し、すなわち、500msec未満の操作を受け付けた場合には(時点a)、計数メダル数として「1」が設定される。図264に示したタイマ割込みによる300msec周期(所定の送信周期)が到来すると(時点b)、遊技メダル数から「1」が減算される。ここでは、遊技メダル数が「30」から「1」が減算されて「29」になったとする。なお、かかる計数メダル数および遊技メダル数は、メダル数制御CPU946がRAMに保持している変数である。そして、メダルレス遊技機902は、計数通知を専用ユニット904に送信する。専用ユニット904は、計数通知を受信すると、計数通知で示された計数メダル数(ここでは「1」)を獲得メダル数(例えば「0」)に加算し、その加算結果(例えば「1」)を獲得メダル数表示装置944に表示する。 Figure 268 is a timing chart for explaining the counting process. Here, the medal count control CPU 946 measures the time during which the counting switch 922 is continuously operated in order to grasp the counting mode (short press or long press) desired by the player. For example, as shown in Figure 268 (a), when the counting switch 922 is short pressed, that is, an operation of less than 500 msec is accepted (time point a), the count medal number is set to "1". When the 300 msec cycle (predetermined transmission cycle) by the timer interrupt shown in Figure 264 arrives (time point b), "1" is subtracted from the game medal number. Here, it is assumed that the game medal number is "29" by subtracting "1" from "30". The count medal number and the game medal number are variables held in the RAM by the medal count control CPU 946. Then, the medalless gaming machine 902 transmits a counting notification to the dedicated unit 904. When the dedicated unit 904 receives the count notification, it adds the number of counted medals indicated in the count notification (here, "1") to the number of medals won (e.g., "0"), and displays the result of the addition (e.g., "1") on the medal count display device 944.

また、例えば、図268(b)に示すように、遊技者が計数スイッチ922の操作を継続し、300msec周期が到来したときに(時点c)、計数スイッチ922の長押し、すなわち、500msec以上継続した操作を受け付けると、メダル保持部の遊技メダル数が50枚以上の場合、計数メダル数として「50」が設定され、50枚未満の場合、計数メダル数として全数が設定される。ここでは、仮に、遊技メダル数が「30」であり、長押しにより、その全数「30」が計数メダル数として設定されたとする。これに伴い、遊技メダル数「30」が全数減算され、遊技メダル数は「0」となる。そして、メダルレス遊技機902は、計数通知を専用ユニット904に送信し、計数メダル数をクリア(「0」に設定)する。専用ユニット904は、計数通知を受信すると、計数通知で示された計数メダル数(ここでは「30」)を獲得メダル数(例えば「0」)に加算し、その加算結果(例えば「30」)を獲得メダル数表示装置944に表示する。 For example, as shown in FIG. 268(b), when the player continues to operate the counting switch 922 and a 300 msec cycle arrives (time point c), if the counting switch 922 is pressed and held, i.e., the operation is continued for 500 msec or more, if the number of game medals in the medal holding section is 50 or more, the counted medal number is set to "50", and if the number of game medals is less than 50, the total number is set as the counted medal number. Here, it is assumed that the number of game medals is "30", and the total number "30" is set as the counted medal number by pressing and holding. Accordingly, the total number of game medals "30" is subtracted, and the game medal number becomes "0". Then, the medalless gaming machine 902 transmits a counting notification to the dedicated unit 904, and clears the counted medal number (sets it to "0"). When the dedicated unit 904 receives the count notification, it adds the number of counted medals indicated in the count notification (here, "30") to the number of medals won (e.g., "0"), and displays the result of the addition (e.g., "30") on the medal count display device 944.

なお、上述したように、遊技が可能な間に計数スイッチ922が操作された場合、必ず計数処理が実行される。したがって、遊技の進行中に遊技者が計数スイッチ922を操作すると、遊技の進行における電子化メダルの払い出しと、計数処理とが短時間に連続して実行される場合がある。例えば、図268(c)に示すように、遊技メダル数が「30」である場合に、遊技の進行に応じて、小役が入賞し、仮に、15枚の電子化メダルの払い出しがあったとする(時点d)。メダル数制御CPU946は、払出枚数が含まれる払出終了時コマンドを受信し、遊技メダル数「30」に払出枚数「15」を加算して遊技メダル数を「45」に更新する。このとき、並行して、遊技者が計数スイッチ922の操作を継続しており、300msec周期が到来したときに(時点e)、メダル数制御CPU946が、計数スイッチ922の長押し、すなわち、500msec以上継続した操作を受け付けると、計数メダル数として全部の電子化メダル(ここでは「45」)を設定する。これに伴い、遊技メダル数「45」が全数減算され、遊技メダル数は「0」となる。そして、メダルレス遊技機902は、計数通知を専用ユニット904に送信し、計数メダル数をクリアする。専用ユニット904は、計数通知を受信すると、計数通知で示された計数メダル数(ここでは「45」)を獲得メダル数(例えば「0」)に加算し、その加算結果(例えば「45」)を獲得メダル数表示装置944に表示する。 As described above, if the counting switch 922 is operated while play is possible, the counting process is always executed. Therefore, if the player operates the counting switch 922 while play is in progress, the payout of electronic medals in the progress of the game and the counting process may be executed in quick succession. For example, as shown in FIG. 268(c), when the number of game medals is "30", a small prize is won as the game progresses, and 15 electronic medals are paid out (time point d). The medal number control CPU 946 receives a payout end command including the number of paid out medals, and adds the number of paid out medals "15" to the number of game medals "30" to update the number of game medals to "45". At this time, the player continues to operate the counting switch 922, and when the 300 msec cycle arrives (time point e), the medal count control CPU 946 accepts a long press of the counting switch 922, i.e., an operation that continues for 500 msec or more, and sets all electronic medals (here, "45") as the counted medal count. Accordingly, the game medal count "45" is all subtracted, and the game medal count becomes "0". The medalless gaming machine 902 then transmits a counting notification to the dedicated unit 904 and clears the counted medal count. Upon receiving the counting notification, the dedicated unit 904 adds the counted medal count (here, "45") indicated in the counting notification to the earned medal count (for example, "0"), and displays the result of the addition (for example, "45") on the earned medal count display device 944.

ここでは、小役の入賞と計数スイッチ922の操作とのタイミングによって、電子化メダルの払い出しが行われた直後に計数処理が実行されている。したがって、遊技メダル数は、その都度「30」→「45」→「0」と変化している。しかし、電子化メダルの払出処理および計数処理が、計数通知を送信する300msec周期内で連続して実行されると、計数通知では、その結果のみ通知されることとなる。したがって、遊技メダル数の「30」→「45」→「0」の推移に拘わらず、専用ユニット904は、獲得メダル数の「0」→「45」の変化のみ獲得メダル数表示装置944に表示することとなる。 Here, the counting process is executed immediately after the electronic medals are paid out, depending on the timing of the winning of the minor prize and the operation of the counting switch 922. Therefore, the number of game medals changes each time from "30" to "45" to "0". However, if the payout process and counting process of the electronic medals are executed consecutively within the 300 msec period in which the counting notification is sent, the counting notification will notify only the result. Therefore, regardless of the change in the number of game medals from "30" to "45" to "0", the dedicated unit 904 will only display the change in the number of earned medals from "0" to "45" on the earned medal number display device 944.

図268に示したように、メダル数制御CPU946は、遊技メダル数が変化したタイミング、すなわち、電子化メダルの払出処理や計数処理が実行されたタイミングに拘わらず、また、電子化メダルの払出処理による遊技メダル数の変化が遊技メダル数表示装置924に表示されるのを待つことなく、計数通知を送信する周期が到来したときに、計数スイッチ922が所定時間(例えば、500msec)以上連続して操作されていると、計数メダル数として遊技メダル数の一部または全部(ここでは、全部である「45」)を専用ユニット904に送信する。したがって、電子化メダルの払出処理と計数処理とが重なった場合においても、そのタイミングによっては、計数通知を送信する周期が到来し、長押しに伴って、遊技メダル数が「30」→「0」となり、計数メダル数として「30」を専用ユニット904に送信した後、電子化メダルの払出処理によって、遊技メダル数が「0」→「15」となり、再び、計数通知を送信する周期が到来し、長押しに伴って、遊技メダル数が「15」→「0」となり、計数メダル数として「15」を専用ユニット904に送信する場合もある。そうすると、獲得メダル数表示装置944の表示内容が「0」→「30」→「45」と変化する場合もあり、図268(c)に示したように、獲得メダル数表示装置944の表示内容が「0」→「45」と変化する場合も生じ得る。しかし、遊技者は、計数スイッチ922を長押しすることで、既に、遊技メダル数の計数を開始しているので、獲得メダル数表示装置944の表示内容が「0」であったのが、遊技メダル数と電子化メダルの払い出し分とを合わせて、最終的に「45」になっているのを確認できればよい。したがって、獲得メダル数表示装置944の遊技メダル数の変化態様の違いは遊技の進行に影響しない。 As shown in FIG. 268, when the cycle for sending a counting notification arrives, the medal count control CPU 946 transmits a part or all of the game medal count (here, the whole, "45") to the dedicated unit 904 as the counted medal count, if the counting switch 922 has been continuously operated for a predetermined time (e.g., 500 msec) or more, regardless of the timing when the number of game medals changes, i.e., the timing when the electronic medal payout process or counting process is executed, and without waiting for the change in the game medal count due to the electronic medal payout process to be displayed on the game medal count display device 924. Therefore, even if the payout process and the counting process of the electronic medals overlap, depending on the timing, a period for transmitting a counting notice may arrive, and the number of game medals may change from "30" to "0" as a result of a long press, and "30" may be transmitted to the dedicated unit 904 as the counted medal number, and then the payout process of the electronic medals may change the number of game medals from "0" to "15", and again a period for transmitting a counting notice may arrive, and the number of game medals may change from "15" to "0" as a result of a long press, and "15" may be transmitted to the dedicated unit 904 as the counted medal number. In this case, the display content of the acquired medal number display device 944 may change from "0" to "30" to "45", and as shown in FIG. 268(c), the display content of the acquired medal number display device 944 may also change from "0" to "45". However, since the player has already started counting the number of game medals by pressing and holding the count switch 922, it is sufficient for the player to confirm that the display content of the acquired medal count display device 944, which was "0," has finally become "45," including the number of game medals and the number of paid-out electronic medals. Therefore, differences in the manner in which the number of game medals displayed on the acquired medal count display device 944 changes do not affect the progress of the game.

ここでは、メダル数制御CPU946が、遊技メダル数の変化タイミングに拘わらず、計数通知を送信する周期が到来したときに計数スイッチ922が所定時間(例えば500msec)以上連続して操作されていると、遊技メダル数の一部または全部(ここでは、「45」)を専用ユニット904に送信する構成により、遊技者は、獲得メダル数表示装置944の表示更新を不要に待つことなく、最終的な獲得メダル数を早期に把握し、次の操作を迅速に開始できるので、メダルレス遊技機902の操作性を向上することが可能となる。 Here, regardless of the timing of the change in the number of game medals, if the counting switch 922 has been operated continuously for a predetermined time (e.g., 500 msec) or more when the cycle for sending a counting notification arrives, the medal count control CPU 946 transmits some or all of the game medal count (here, "45") to the dedicated unit 904. This allows the player to quickly grasp the final number of medals won without having to unnecessarily wait for the display update of the medal count display device 944, and to quickly begin the next operation, thereby improving the operability of the medalless gaming machine 902.

また、ここでは、メダル数制御CPU946は、遊技メダル数に拘わらず(遊技メダル数が「0」であっても)、計数スイッチ922の操作を常に受け付け、計数スイッチ922が連続的に操作された時間を計時している。 In addition, here, the medal count control CPU 946 always accepts operation of the counting switch 922 regardless of the number of game medals (even if the number of game medals is "0"), and measures the time that the counting switch 922 is continuously operated.

例えば、仮に、遊技メダル数が「0」であった場合、計数処理の実行有無に拘わらず、計数通知では計数メダル数が「0」となる。したがって、遊技メダル数が「0」の場合、計数処理を実行しないとしたり、計数スイッチ922が連続的に操作された時間を計時しないといったことが考えられる。しかし、図268(c)で示したように、仮に、電子化メダルの払出処理が生じた場合、払出処理前の遊技メダル数が「0」であったとしても、その払い出された電子化メダル(遊技メダル数)について計数処理を実行できる。このとき、遊技メダル数が「0」以外の数となってから(払出処理が完了してから)、はじめて計数スイッチ922が連続的に操作された時間を計時するとなると、その分、計数処理が遅れ、操作性が悪くなる。 For example, if the number of game medals is "0", the count notification will show the number of counted medals as "0" regardless of whether the counting process has been performed. Therefore, if the number of game medals is "0", it is conceivable that the counting process will not be performed, or that the time during which the counting switch 922 is continuously operated will not be measured. However, as shown in FIG. 268(c), if a payout process for electronic medals occurs, even if the number of game medals before the payout process was "0", the counting process can be performed on the paid-out electronic medals (number of game medals). In this case, if the time during which the counting switch 922 was continuously operated is measured for the first time after the number of game medals becomes a number other than "0" (after the payout process is completed), the counting process will be delayed accordingly, resulting in poor operability.

ここでは、メダル数制御CPU946が、遊技メダル数に拘わらず、計数スイッチ922が連続的に操作された時間を計時する構成により、計数通知を送信する周期が到来したときには確実に長押しを判断することが可能となるので、遊技者は、最終的な獲得メダル数を早期に把握し、次の操作を迅速に開始でき、メダルレス遊技機902の操作性を向上することが可能となる。また、メダル数制御CPU946が実行するプログラム上、遊技メダル数が「0」であるか否かといった判定(分岐)が不要になるので、処理負荷を軽減するとともに、メモリ容量を削減することが可能となる。 Here, the medal count control CPU 946 is configured to count the time that the count switch 922 is continuously operated regardless of the number of game medals, so that it can reliably determine that a long press has been performed when the period for sending a count notification arrives, allowing the player to quickly determine the final number of medals won and to quickly begin the next operation, improving the operability of the medalless gaming machine 902. In addition, the program executed by the medal count control CPU 946 does not require a determination (branch) as to whether the number of game medals is "0", which reduces the processing load and makes it possible to reduce memory capacity.

なお、メダル数制御CPU946が、計数通知を送信する周期(例えば300msec)と、遊技メダル数表示装置924の表示を更新する周期(タイマ割込みによる所定の表示周期:例えば1msec)は独立して管理されている。したがって、上述した電子化メダルの払出処理や計数処理のタイミングと、遊技メダル数表示装置924の表示更新タイミングとの時間関係によっては、遊技メダル数表示装置924における遊技メダル数の表示態様が異なることとなる。 The period (e.g., 300 msec) at which the medal count control CPU 946 sends the count notification and the period (a predetermined display period by timer interrupt: e.g., 1 msec) at which the display of the game medal count display device 924 is updated are managed independently. Therefore, depending on the time relationship between the timing of the payout process and counting process of the electronic medals described above and the display update timing of the game medal count display device 924, the display mode of the game medal count on the game medal count display device 924 will differ.

図269は、遊技メダル数の表示態様を説明するためのタイミングチャートである。ここでは、図268(c)に示したように、遊技の進行に応じて、小役が入賞し、仮に、15枚の電子化メダルの払い出しがあったとする。また、これと並行して、遊技者が計数スイッチ922の操作を継続し、300msec周期が到来したときに、メダル数制御CPU946が、計数スイッチ922の長押し、すなわち、500msec以上継続した操作を受け付けると、計数メダル数として全部の電子化メダル(ここでは「45」)を設定する。ここでは、遊技メダル数が、電子化メダルの払出処理によって「30」→「45」に変化し、計数処理によって「45」→「0」に変化している。また、専用ユニット904では、獲得メダル数が、計数処理によって「0」→「45」に変化している。 Figure 269 is a timing chart for explaining the display mode of the number of game medals. Here, as shown in Figure 268 (c), it is assumed that a small win occurs as the game progresses, and 15 electronic medals are paid out. In parallel with this, the player continues to operate the counting switch 922, and when a 300 msec period arrives, the medal count control CPU 946 accepts a long press of the counting switch 922, that is, an operation that continues for 500 msec or more, and sets all electronic medals (here, "45") as the number of counted medals. Here, the number of game medals changes from "30" to "45" due to the electronic medal payout process, and from "45" to "0" due to the counting process. In addition, in the dedicated unit 904, the number of medals acquired changes from "0" to "45" due to the counting process.

例えば、図269(a)に示すように、電子化メダルの払出処理と計数処理との間に、遊技メダル数表示装置924の表示内容が更新(変更)されたとする。そうすると、メダル数制御CPU946は、遊技メダル数が、電子化メダルの払出処理によって「30」→「45」に変化したことに応じ、遊技メダル数表示装置924の表示を更新する周期が到来すると(時点f)、遊技メダル数表示装置924における遊技メダル数の表示を「30」→「45」に変化させる。同様に、メダル数制御CPU946は、遊技メダル数が、計数処理によって「45」→「0」に変化したことに応じ、遊技メダル数表示装置924の表示を更新する周期が到来すると(時点g)、遊技メダル数表示装置924における遊技メダル数の表示を「45」→「0」に変化させる。 For example, as shown in FIG. 269(a), assume that the display content of the game medal count display device 924 is updated (changed) between the payout process and the counting process of the electronic medals. Then, in response to the change in the game medal count from "30" to "45" due to the payout process of the electronic medals, the medal count control CPU 946 changes the display of the game medal count on the game medal count display device 924 from "30" to "45" when the period for updating the display of the game medal count display device 924 arrives (time f). Similarly, in response to the change in the game medal count from "45" to "0" due to the counting process, the medal count control CPU 946 changes the display of the game medal count on the game medal count display device 924 from "45" to "0" when the period for updating the display of the game medal count display device 924 arrives (time g).

ここでは、電子化メダルの払出処理が実行された後、および、計数処理が実行された後に、それぞれ遊技メダル数表示装置924の表示内容が更新されている。したがって、遊技メダル数が「30」→「45」→「0」と変化するのに伴って、遊技メダル数表示装置924の表示も「30」→「45」→「0」と変化することとなる。この場合、遊技者は、遊技メダル数表示装置924を通じて、遊技メダル数が「30」→「45」→「0」と変化したことを把握することができる。 Here, the display contents of the game medal count display device 924 are updated after the electronic medal payout process and the counting process are executed. Therefore, as the game medal count changes from "30" to "45" to "0", the display of the game medal count display device 924 also changes from "30" to "45" to "0". In this case, the player can understand through the game medal count display device 924 that the game medal count has changed from "30" to "45" to "0".

また、例えば、図269(b)に示すように、遊技メダル数表示装置924の表示を更新する周期の間に、電子化メダルの払出処理と計数処理とがいずれも実行されたとする。そうすると、メダル数制御CPU946は、遊技メダル数が、電子化メダルの払出処理によって「30」→「45」に変化し、計数処理によって「45」→「0」に変化する。しかし、遊技メダル数表示装置924の表示を更新する周期が到来したときには(時点h)、既に遊技メダル数が「0」になっているので、メダル数制御CPU946は、遊技メダル数表示装置924における遊技メダル数の表示を「30」→「0」に直接変化させる。 For example, as shown in FIG. 269(b), assume that both the payout process and the counting process of the electronic medals are executed during the period in which the display of the game medal count display device 924 is updated. In this case, the medal count control CPU 946 changes the game medal count from "30" to "45" by the payout process of the electronic medals, and from "45" to "0" by the counting process. However, when the period in which the display of the game medal count display device 924 is updated arrives (time point h), the game medal count has already become "0", so the medal count control CPU 946 directly changes the display of the game medal count on the game medal count display device 924 from "30" to "0".

ここでは、電子化メダルの払出処理および計数処理がいずれも実行された後に、遊技メダル数表示装置924の表示内容が更新されている。したがって、遊技メダル数が「30」から一旦増加して「45」となった後、減少して「0」と変化するのに対し、遊技メダル数表示装置924の表示は「30」から直ぐに減少して「0」と変化することとなる。この場合、遊技者は、遊技メダル数表示装置924を通じて、遊技メダル数が「30」→「0」と変化したことを把握する。 Here, the display contents of the game medal count display device 924 are updated after both the electronic medal payout process and the counting process have been executed. Therefore, the game medal count increases from "30" to "45" and then decreases to "0", while the display of the game medal count display device 924 immediately decreases from "30" to "0". In this case, the player understands through the game medal count display device 924 that the game medal count has changed from "30" to "0".

ここで、遊技者に、遊技メダル数表示装置924を通じて、遊技メダル数が「30」→「45」→「0」といったように段階的に変化したことを把握させようとすると、メダル数制御CPU946は、遊技メダル数表示装置924の表示内容が更新されるのを待って計数処理を行わなければならなくなり、その分、計数処理が遅れてしまう。なお、遊技者に遊技メダル数表示装置924の表示の更新を認識させるためには、認識できる程度に表示時間を長くする必要が生じるので、その分、計数処理が遅れ、操作性が悪くなる。 If we try to have the player understand through the game medal count display device 924 that the number of game medals has changed stepwise, such as from "30" to "45" to "0," the medal count control CPU 946 must wait for the display content of the game medal count display device 924 to be updated before performing the counting process, which delays the counting process accordingly. Note that in order to have the player recognize the update of the display of the game medal count display device 924, it is necessary to extend the display time to a degree that allows the player to recognize it, which delays the counting process accordingly and reduces operability.

ここでは、図269に示したように、メダル数制御CPU946は、遊技メダル数の変化に応じて遊技メダル数表示装置924の表示内容が更新されたか否かに拘わらず、計数通知を送信する周期が到来すると、計数メダル数として遊技メダル数の一部または全部(ここでは、全部である「45」)を専用ユニット904に送信する。したがって、遊技メダル数が「30」→「45」→「0」と変化した場合に、図269(a)に示したように、遊技メダル数表示装置924の遊技メダル数が「30」→「45」→「0」と変化する場合もあれば、図269(b)に示したように、遊技メダル数表示装置924の遊技メダル数が「30」→「0」と変化する場合もある。しかし、遊技者は、計数スイッチ922を長押しすることで、既に、遊技メダル数の計数を開始しているので、遊技メダル数表示装置924の表示内容が「30」であったのが、最終的に、「0」になっているのを確認できればよい。また、遊技者は、獲得メダル数表示装置944の表示内容が「0」であったのが、遊技メダル数と電子化メダルの払い出し分とを合わせて、最終的に「45」になっているのを確認できればよい。したがって、遊技メダル数表示装置924の遊技メダル数の変化態様の違いは遊技の進行に影響しない。 Here, as shown in FIG. 269, the medal count control CPU 946 transmits a part or all of the game medal count (here, all of it, "45") to the dedicated unit 904 as the count medal count when the period for transmitting the count notification arrives, regardless of whether the display content of the game medal count display device 924 has been updated in response to the change in the game medal count. Therefore, when the game medal count changes from "30" to "45" to "0", the game medal count on the game medal count display device 924 may change from "30" to "45" to "0" as shown in FIG. 269(a), or the game medal count on the game medal count display device 924 may change from "30" to "0" as shown in FIG. 269(b). However, since the player has already started counting the game medal count by pressing and holding the count switch 922, it is sufficient to confirm that the display content of the game medal count display device 924, which was "30", has finally become "0". Furthermore, the player only needs to be able to confirm that the display content of the acquired medal count display device 944, which was "0," has finally become "45," including the number of game medals and the number of electronic medals paid out. Therefore, differences in the manner in which the number of game medals displayed on the game medal count display device 924 changes do not affect the progress of the game.

ここでは、メダル数制御CPU946が、遊技メダル数の変化タイミングに拘わらず、計数通知を送信する周期が到来したときに計数スイッチ922が所定時間(例えば500msec)以上連続して操作されていると、遊技メダル数の少なくとも一部(ここでは、「45」)を専用ユニット904に送信する構成により、遊技者は、遊技メダル数表示装置924の表示更新を不要に待つことなく、最終的な遊技メダル数を早期に把握し、次の操作を迅速に開始できるので、メダルレス遊技機902の操作性を向上することが可能となる。 Here, regardless of the timing of the change in the number of game medals, if the counting switch 922 has been operated continuously for a predetermined time (e.g., 500 msec) or more when the cycle for sending a counting notification arrives, the medal count control CPU 946 transmits at least a portion of the game medal count (here, "45") to the dedicated unit 904. This allows the player to quickly grasp the final game medal count and quickly begin the next operation without having to unnecessarily wait for the display update of the game medal count display device 924, thereby improving the operability of the medalless gaming machine 902.

なお、ここでは、図268、図269を通じ、電子化メダルの払出処理や計数処理が連続して実行される例を挙げて説明したが、遊技メダル数の変化はかかる処理に限らず、電子化メダルの投入処理等、様々な処理を対象とすることができる。 Note that, although an example has been given in which the payout process and counting process of electronic medals are executed consecutively in Figures 268 and 269, changes in the number of game medals are not limited to such processes, and can include various processes such as the insertion process of electronic medals.

(計数処理2)
図264を用いて説明したように、メダルレス遊技機902(例えば、メダル数制御CPU946)は、遊技機情報通知を所定の周期(例えば、300msec周期)で専用ユニット904に送信する。また、メダルレス遊技機902は、遊技機情報通知を専用ユニット904に送信してから100msec経過後に計数通知を専用ユニット904に送信する。つまり、メダルレス遊技機902は、計数メダル数の情報を含む計数通知を、遊技機情報通知と同様に、所定の周期(例えば、300msec周期)で専用ユニット904に送信する。
(Counting process 2)
As described with reference to FIG. 264, the medalless gaming machine 902 (e.g., medal count control CPU 946) transmits a gaming machine information notification to the dedicated unit 904 at a predetermined cycle (e.g., every 300 msec). In addition, the medalless gaming machine 902 transmits a counting notification to the dedicated unit 904 100 msec after transmitting the gaming machine information notification to the dedicated unit 904. In other words, the medalless gaming machine 902 transmits a counting notification including information on the counted medal number to the dedicated unit 904 at a predetermined cycle (e.g., every 300 msec), similar to the gaming machine information notification.

また、計数スイッチ922は、遊技者による所定の入力操作(例えば、押下操作)を受け付ける入力操作部である。メダルレス遊技機902(例えば、メダル数制御CPU946)は、計数スイッチ922(入力操作部)から当該入力操作を示す信号を受信可能となっている。メダルレス遊技機902は、計数スイッチ922から受信した信号に基づいて、後述するように計数メダル数を設定する。メダルレス遊技機902は、上述の所定の周期(例えば、300msec)で、現在の遊技メダル数から、設定した計数メダル数を減算して、遊技メダル数を更新し、所定の周期とは異なる周期(例えば1msec)で、遊技メダル数表示装置924の表示を、当該更新後の遊技メダル数に随時更新する。 The counting switch 922 is an input operation unit that accepts a predetermined input operation (e.g., a pressing operation) by the player. The medalless gaming machine 902 (e.g., medal count control CPU 946) is capable of receiving a signal indicating the input operation from the counting switch 922 (input operation unit). Based on the signal received from the counting switch 922, the medalless gaming machine 902 sets the counted medal count as described below. The medalless gaming machine 902 updates the gaming medal count by subtracting the set counted medal count from the current gaming medal count at the above-mentioned predetermined period (e.g., 300 msec), and updates the display of the gaming medal count display device 924 to the updated gaming medal count at a period (e.g., 1 msec) different from the predetermined period.

遊技メダル数の更新が完了すると、例えば1msecですぐに遊技メダル数表示装置924の表示内容が更新されるため、ほぼ所定の周期(例えば300msec)で当該表示内容が更新されることになる。このことから、メダルレス遊技機902は、遊技メダル数表示装置924における表示内容(すなわち、遊技メダル数表示装置924によって表示される遊技メダル数)の変更を、計数スイッチ922から受信した信号に基づいて、実質的に所定の周期(例えば300msec)で行うこととなる。 When the update of the number of game medals is completed, the display content of the game medal count display device 924 is updated immediately, for example, in 1 msec, so that the display content is updated approximately at a predetermined cycle (for example, 300 msec). As a result, the medalless gaming machine 902 changes the display content of the game medal count display device 924 (i.e., the number of game medals displayed by the game medal count display device 924) based on the signal received from the counting switch 922, essentially at a predetermined cycle (for example, 300 msec).

また、メダルレス遊技機902は、設定した計数メダル数の情報を含む計数通知を、上述の所定の周期(例えば、300msec)で専用ユニット904に送信する。つまり、メダルレス遊技機902は、計数スイッチ922から受信した信号に基づく、計数通知の外部への出力を、所定の周期で行う。 The medalless gaming machine 902 also transmits a counting notification including information on the set number of counted medals to the dedicated unit 904 at the above-mentioned predetermined period (e.g., 300 msec). In other words, the medalless gaming machine 902 outputs a counting notification to the outside based on the signal received from the counting switch 922 at a predetermined period.

また、専用ユニット904は、受信した計数通知に基づいて、獲得メダル数を更新し、所定の周期とは異なる周期(例えば1msec)で、獲得メダル数表示装置944の表示を、当該更新後の獲得メダル数に随時更新する。専用ユニット904では、計数通知に基づいて獲得メダル数の更新が完了すると、例えば1msecですぐに獲得メダル数表示装置944の表示内容が更新されるため、ほぼ所定の周期(例えば300msec)で当該表示内容が更新されることになる。このことから、専用ユニット904は、獲得メダル数表示装置944における表示の更新を、メダルレス遊技機902から受信した計数通知に基づいて、実質的に所定の周期(300msec)で行う。 The dedicated unit 904 also updates the number of medals won based on the counting notification received, and updates the display of the won medal count display device 944 to the updated number of medals won at a period (e.g., 1 msec) different from the predetermined period as needed. When the dedicated unit 904 completes updating the number of medals won based on the counting notification, the display content of the won medal count display device 944 is updated immediately, for example, in 1 msec, so that the display content is updated at approximately the predetermined period (e.g., 300 msec). For this reason, the dedicated unit 904 updates the display on the won medal count display device 944 substantially at the predetermined period (300 msec) based on the counting notification received from the medalless gaming machine 902.

ここで、遊技者が、計数スイッチ922を素早く複数回連続押圧操作することがあり得る。このような場合、メダルレス遊技機902は、所定の周期(例えば、300msec周期)のうち1周期中(例えば、300msec以内)に、押圧操作を示す信号を複数回受信する(入力される)ことがある。メダルレス遊技機902では、このような複数回の押圧操作が1周期中に行われても、専用ユニット904における表示が適切に行われるようにする。 Here, it is possible that the player may press the counting switch 922 quickly and consecutively multiple times. In such a case, the medalless gaming machine 902 may receive (be input) a signal indicating a pressing operation multiple times during one period (e.g., within 300 msec) of a predetermined period (e.g., 300 msec period). The medalless gaming machine 902 ensures that the display on the dedicated unit 904 is performed appropriately even if such multiple pressing operations are performed during one period.

具体的には、メダルレス遊技機902(例えば、メダル数制御CPU946)は、1周期中に計数スイッチ922から信号を複数回受信した場合、複数回のうち1回分の信号のみを有効とする。より詳細には、メダルレス遊技機902は、1周期中に計数スイッチ922から信号を複数回受信しても、計数スイッチ922の押下操作に応じた計数メダル数を固定的に「1」に設定する。そして、メダルレス遊技機902は、有効とされた1回分の信号に基づいて(より詳細には、計数メダル数「1」に基づいて)、遊技メダル数表示装置924における表示を更新し、信号(例えば、計数通知)を外部に出力する。 Specifically, when the medalless gaming machine 902 (e.g., medal count control CPU 946) receives a signal from the counting switch 922 multiple times during one cycle, it validates only one of the multiple signals. More specifically, even if the medalless gaming machine 902 receives a signal from the counting switch 922 multiple times during one cycle, it sets the counted medal number corresponding to the pressing operation of the counting switch 922 to a fixed "1". Then, based on the one valid signal (more specifically, based on the counted medal number of "1"), the medalless gaming machine 902 updates the display on the gaming medal count display device 924 and outputs a signal (e.g., a counting notification) to the outside.

図270は、メダル数制御CPU946における計数スイッチ処理の流れを示したフローチャートである。計数スイッチ処理は、計数スイッチ922が押圧操作されたときに実行される。計数スイッチ処理は、図266のステップS1がYESのときに行われるステップS3~ステップS10の処理に対応する。ここでは、本実施形態に関係する処理を説明し、本実施形態に関係しない処理は省略する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。 Figure 270 is a flow chart showing the flow of count switch processing in the medal count control CPU 946. The count switch processing is executed when the count switch 922 is pressed. The count switch processing corresponds to the processing of steps S3 to S10 that are performed when step S1 in Figure 266 is YES. Here, the processing related to this embodiment will be explained, and processing that is not related to this embodiment will be omitted. The numerical values of step S in this figure will be used only in the explanation of this figure.

図270に示すように、メダル数制御CPU946は、計数スイッチ922の押圧を検出すると(具体的には、計数スイッチ922のONエッジを検出すると)、メダルレス遊技機902が有する計時カウンタの計時を開始する(S3)。メダル数制御CPU946は、計数スイッチ922のOFFエッジを検出したか否かを判定する(S4)。計数スイッチ922のOFFエッジが検出されていない場合(S4におけるNO)、メダル数制御CPU946は、計時カウンタの計時開始から所定時間(例えば、500msec)が経過したか否かを判定する(S5)。所定時間が経過していない場合(S5におけるNO)、メダル数制御CPU946は、ステップS4の処理に戻る。所定時間が経過した場合(S5におけるYES)、メダル数制御CPU946は、長押しフラグをONに設定して(S6)、ステップS4の処理に戻る。 As shown in FIG. 270, when the medal count control CPU 946 detects the pressing of the count switch 922 (specifically, when the ON edge of the count switch 922 is detected), it starts the timing of the timing counter of the medalless gaming machine 902 (S3). The medal count control CPU 946 judges whether or not the OFF edge of the count switch 922 is detected (S4). If the OFF edge of the count switch 922 is not detected (NO in S4), the medal count control CPU 946 judges whether or not a predetermined time (e.g., 500 msec) has elapsed since the start of timing of the timing counter (S5). If the predetermined time has not elapsed (NO in S5), the medal count control CPU 946 returns to the processing of step S4. If the predetermined time has elapsed (YES in S5), the medal count control CPU 946 sets the long press flag to ON (S6) and returns to the processing of step S4.

計数スイッチのOFFエッジが検出された場合(S4におけるYES)、メダル数制御CPU946は、長押しフラグがOFFであるか否かを判定する(S7)。長押しフラグがOFFである場合(S7におけるYES)、メダル数制御CPU946は、計数メダル数を「1」に設定し、ステップS9の処理に進む。設定された計数メダル数は、所定のレジスタまたはRAMに記憶される。長押しフラグがONである場合(S7におけるNO)、メダル数制御CPU946は、ステップS9の処理に進む。ステップS9において、メダル数制御CPU946は、長押しフラグをクリアする(OFFにする)。メダル数制御CPU946は、計時カウンタをクリアし、計数スイッチ処理を終了する。ここで、ステップS8では、計数メダル数が「+1」されるのではなく、計数メダル数が「1」に設定される。 When the OFF edge of the counting switch is detected (YES in S4), the medal count control CPU 946 judges whether or not the long press flag is OFF (S7). When the long press flag is OFF (YES in S7), the medal count control CPU 946 sets the counted medal count to "1" and proceeds to processing in step S9. The set counted medal count is stored in a specified register or RAM. When the long press flag is ON (NO in S7), the medal count control CPU 946 proceeds to processing in step S9. In step S9, the medal count control CPU 946 clears (sets OFF) the long press flag. The medal count control CPU 946 clears the time counter and ends the counting switch processing. Here, in step S8, the counted medal count is not incremented by "+1", but is instead set to "1".

図271は、計数メダル数の設定を説明するタイムチャートである。図271に示すように、例えば、時点aにおいて、遊技メダル数が「50」であり、計数メダル数「0」の情報を含む計数通知がメダルレス遊技機902から専用ユニット904に送信され、獲得メダル数が「50」であるとする。そして、時点aから、1周期分の300msecが経過するまでに、計数スイッチ922の押圧操作が3回行われたとする。 Figure 271 is a time chart explaining the setting of the counted medal number. As shown in Figure 271, for example, at time point a, the number of game medals is "50", a counting notification including information that the counted medal number is "0" is sent from the medalless gaming machine 902 to the dedicated unit 904, and the number of acquired medals is "50". Then, from time point a until one cycle's worth of 300 msec has elapsed, the counting switch 922 is pressed three times.

上述の計数スイッチ処理は、計数スイッチ922の押圧操作のONエッジで開始され、当該押圧操作におけるOFFエッジにおいて、短押しであれば、計数メダル数「1」が設定される。計数スイッチ922が短押しされる都度、計数メダル数「1」が繰り返し設定されるため、例えば、1周期中の3回目の短押しであっても、計数メダル数は、「3」に設定されず、「1」に設定される。 The above-mentioned counting switch process starts at the ON edge of the pressing operation of the counting switch 922, and at the OFF edge of the pressing operation, if it is a short press, the counted medal number is set to "1". Since the counted medal number is repeatedly set to "1" each time the counting switch 922 is short pressed, for example, even if it is the third short press in one cycle, the counted medal number is set to "1" rather than "3".

時点aから1周期分の300msecが経過した時点bにおいて、図267を用いて上述したように、メダルレス遊技機902は、現在の遊技メダル数「50」から、設定された計数メダル数「1」を減算して、遊技メダル数「49」を導出する。メダルレス遊技機902は、遊技メダル数表示装置924における遊技メダル数の表示を「50」から「49」に更新する。このように、1周期中に3回押圧操作がなされても、遊技メダル数表示装置924の表示更新の直前の数が、例えば、「50」の場合、「47」に表示更新されるのではなく、「49」に表示更新される。 At time b when one cycle's worth of 300 msec has elapsed from time a, as described above with reference to FIG. 267, the medalless gaming machine 902 subtracts the set count medal number "1" from the current gaming medal number "50" to derive the gaming medal number "49". The medalless gaming machine 902 updates the display of the gaming medal number on the gaming medal number display device 924 from "50" to "49". In this way, even if a pressing operation is performed three times during one cycle, if the number immediately prior to the display update on the gaming medal number display device 924 is, for example, "50", it is not updated to "47", but rather updated to "49".

また、時点bにおいて、メダルレス遊技機902は、計数メダル数「1」の情報を含む計数通知を専用ユニット904に送信する。専用ユニット904は、計数通知を受信すると、獲得メダル数「50」に、受信した計数メダル数「1」を加算して、獲得メダル数「51」を導出する。専用ユニット904は、獲得メダル数表示装置944における獲得メダル数の表示を「50」から「51」に更新する。このように、1周期中に3回押圧操作がなされても、獲得メダル数表示装置944の表示更新の直前の数が、例えば、「50」の場合、「53」に表示更新されるのではなく、「51」に表示更新される。 At time b, the medalless gaming machine 902 transmits a counting notification including information on the counted medal number of "1" to the dedicated unit 904. Upon receiving the counting notification, the dedicated unit 904 adds the received counted medal number of "1" to the number of acquired medals of "50" to derive the number of acquired medals of "51". The dedicated unit 904 updates the display of the number of acquired medals on the acquired medal number display device 944 from "50" to "51". In this way, even if a pressing operation is performed three times during one cycle, if the number immediately prior to the display update of the acquired medal number display device 944 is, for example, "50", the display is updated to "51" rather than to "53".

すなわち、メダル数制御CPU946は、1周期中に複数回押圧操作がなされても、計数メダル数を「1」に設定することで、専用ユニット904の獲得メダル数表示装置944の表示を、所定の周期(例えば、300msec)ごとに1ずつ増加するように更新することができる。例えば、獲得メダル数表示装置944の表示内容が、「50」から「53」に飛んで変化するのではなく、「50」から「51」に変化するように、1ずつ連続して変化する。このため、メダルレス遊技機902では、専用ユニット904の獲得メダル数表示装置944において獲得メダル数を適切に表示させることができ、遊技者に不信感を与えることを抑制することができる。 That is, even if the pressing operation is performed multiple times during one cycle, the medal count control CPU 946 can update the display of the acquired medal count display device 944 of the dedicated unit 904 to increase by 1 every predetermined cycle (e.g., 300 msec) by setting the counted medal count to "1". For example, the display content of the acquired medal count display device 944 does not jump from "50" to "53", but changes continuously by 1, such as from "50" to "51". Therefore, in the medal-less gaming machine 902, the acquired medal count can be appropriately displayed on the acquired medal count display device 944 of the dedicated unit 904, and distrust from the player can be suppressed.

なお、上記のメダルレス遊技機902では、1周期中に、計数スイッチ922の信号(例えば、ONエッジ)を複数回受信した(入力された)場合に、複数回のうち1回分の信号のみを有効としていた。しかし、メダルレス遊技機902は、1周期中に、計数スイッチ922の信号(例えば、ONエッジ)を複数回受信した場合、受信した複数回の信号をすべて有効に処理してもよい。 In the above medal-less gaming machine 902, when a signal (e.g., an ON edge) of the counting switch 922 is received (input) multiple times during one cycle, only one of the multiple signals is considered valid. However, when the medal-less gaming machine 902 receives a signal (e.g., an ON edge) of the counting switch 922 multiple times during one cycle, all of the multiple received signals may be processed as valid.

図272は、複数回の信号をすべて有効に処理する変形例にかかる計数スイッチ処理の流れを示したフローチャートである。図272のフローチャートは、図270のフローチャートのステップS8をステップS18に変更した点において図270のフローチャートと異なり、他のステップについては、図270のフローチャートと同じである。 Figure 272 is a flowchart showing the flow of counting switch processing in a modified example in which all multiple signals are processed effectively. The flowchart in Figure 272 differs from the flowchart in Figure 270 in that step S8 in the flowchart in Figure 270 has been changed to step S18, but the other steps are the same as the flowchart in Figure 270.

図272で示すように、長押しフラグがOFFである場合(S7におけるYES)、メダルレス遊技機902は、計数メダル数を「+1」(1だけインクリメント)する。 As shown in FIG. 272, if the long press flag is OFF (YES in S7), the medalless gaming machine 902 increments the counted medal number by "+1" (increments by 1).

図273は、複数回の信号をすべて有効に処理する変形例にかかる計数メダル数の設定を説明するタイムチャートである。図273で示すように、時点cから、1周期分の300msecが経過するまでに、計数スイッチ922の押圧操作が3回行われたとする。 Figure 273 is a time chart that explains how to set the number of counted medals in a modified example in which all multiple signals are processed effectively. As shown in Figure 273, assume that the counting switch 922 is pressed three times from time point c until one cycle's worth of 300 msec has elapsed.

この変形例における計数スイッチ処理は、計数スイッチ922の押圧操作のONエッジで開始され、当該押圧操作におけるOFFエッジにおいて、短押しであれば、計数メダル数が「+1」される。このため、1周期中に計数スイッチ922が短押しされる都度、計数メダル数が「1」ずつ増加する。例えば、1周期中の2回目のOFFエッジでは、計数メダル数が「2」に設定され、1周期中の3回目のOFFエッジでは、計数メダル数が「3」に設定される。 The counting switch process in this modified example begins with the ON edge of the pressing operation of the counting switch 922, and at the OFF edge of the pressing operation, if the pressing operation is a short press, the counted medal number is incremented by "+1". Therefore, each time the counting switch 922 is short pressed during one cycle, the counted medal number increases by "1". For example, at the second OFF edge during one cycle, the counted medal number is set to "2", and at the third OFF edge during one cycle, the counted medal number is set to "3".

時点cから1周期分の300msecが経過した時点dにおいて、図267を用いて説明したように、メダルレス遊技機902は、現在の遊技メダル数「50」から、設定された計数メダル数「3」を減算して、遊技メダル数「47」を導出する。メダルレス遊技機902は、遊技メダル数表示装置924における遊技メダル数の表示を、「50」→「49」→「48」→「47」のように、「1」ずつ順に減少するように更新する。 At time d, when one cycle's worth of 300 msec has elapsed since time c, as described above with reference to FIG. 267, the medalless gaming machine 902 subtracts the set count medal number "3" from the current medal number "50" to derive the medal number "47". The medalless gaming machine 902 updates the display of the medal number on the medal number display device 924 so that it decreases by "1" in sequence, such as "50" → "49" → "48" → "47".

また、時点dにおいて、メダルレス遊技機902は、1周期中に3回押圧操作されたことにより、計数メダル数「3」の情報を含む計数通知を専用ユニット904に送信する。専用ユニット904は、計数通知を受信すると、獲得メダル数「50」に、受信した計数メダル数「3」を加算して、獲得メダル数「53」を導出する。専用ユニット904は、獲得メダル数表示装置944における獲得メダル数の表示を「50」→「51」→「52」→「53」のように、「1」ずつ順に増加するように更新する。 At time d, the medalless gaming machine 902 has been pressed three times during one cycle, and thus transmits a counting notification including information on the counted medal number "3" to the dedicated unit 904. Upon receiving the counting notification, the dedicated unit 904 adds the received counted medal number "3" to the number of earned medals "50" to derive the number of earned medals "53". The dedicated unit 904 updates the display of the number of earned medals on the earned medal number display device 944 so that it increases by "1" in succession, such as "50" → "51" → "52" → "53".

このように、複数回の信号をすべて有効に処理する変形例においても、専用ユニット904の獲得メダル数表示装置944において獲得メダル数を適切に表示させることができる。 In this way, even in the modified example in which all multiple signals are effectively processed, the number of medals won can be properly displayed on the medal count display device 944 of the dedicated unit 904.

(メインCPUとメダル数制御CPUとの通信)
上記では、メダルレス遊技機902と専用ユニット904との通信について述べた。ただし、具体的には、上述したメダル数制御CPU946と専用ユニット904とのシリアル通信と並行して、メダルレス遊技機902内部において、メインCPU500aとメダル数制御CPU946とがシリアル通信しており、メダル数制御CPU946は、メインCPU500aとのコマンドの送受信により情報を取得し、その情報に基づいて、上述した専用ユニット904に情報を通知している。なお、シリアル通信は、例えば、通信速度が125000bpsであり、データの各バイトが、1ビットのスタートビット、8ビットのデータビット、1ビットのストップビットで表される。ここでは、メダル数制御CPU946と専用ユニット904との通知の前段となる、メインCPU500aとメダル数制御CPU946との通信を詳述する。
(Communication between the main CPU and the medal count control CPU)
The communication between the medal-less gaming machine 902 and the dedicated unit 904 has been described above. However, specifically, in parallel with the serial communication between the medal count control CPU 946 and the dedicated unit 904 described above, the main CPU 500a and the medal count control CPU 946 communicate serially inside the medal-less gaming machine 902, and the medal count control CPU 946 acquires information by sending and receiving commands to the main CPU 500a, and notifies the above-mentioned dedicated unit 904 of information based on the acquired information. Note that the serial communication has a communication speed of, for example, 125,000 bps, and each byte of data is represented by a 1-bit start bit, 8-bit data bits, and 1-bit stop bit. Here, the communication between the main CPU 500a and the medal count control CPU 946, which is the first stage of notification between the medal count control CPU 946 and the dedicated unit 904, will be described in detail.

メインCPU500aは、メダル数制御CPU946に対し、所定のコマンドを送信する。例えば、メインCPU500aは、遊技終了後、次遊技のスタートスイッチ418の操作が行われる前の待機中に、コマンドを識別するための識別情報、投入要求枚数を示す伝達情報、チェックサムで構成される待機中コマンドをメダル数制御CPU946に送信するとしてもよい。また、メインCPU500aは、ベットスイッチ416の操作時に、識別情報、投入要求枚数を示す伝達情報、チェックサムで構成される遊技メダル投入時コマンドをメダル数制御CPU946に送信するとしてもよい。また、メインCPU500aは、スタートスイッチの操作時に、識別情報、投入要求枚数を示す伝達情報、チェックサムで構成されるスタート時コマンドをメダル数制御CPU946に送信するとしてもよい。また、メインCPU500aは、払出終了時に、識別情報、払出枚数を示す伝達情報、チェックサムで構成される払出終了時コマンドをメダル数制御CPU946に送信するとしてもよい。また、メインCPU500aは、1遊技の終了時に、識別情報、役比関連の伝達情報、チェックサムで構成される1遊技終了時コマンドをメダル数制御CPU946に送信するとしてもよい。また、メインCPU500aは、起動時に、識別情報、起動時に必要な伝達情報、役比関連の伝達情報、チェックサムで構成される起動時コマンドをメダル数制御CPU946に送信するとしてもよい。また、メインCPU500aは、内部状態の変更時、エラーの発生時、または、エラーの解除時に、識別情報、チェックサムで構成される変更時コマンドをメダル数制御CPU946に送信するとしてもよい。上述したコマンドの長さは任意に設定できる。 The main CPU 500a transmits a predetermined command to the medal count control CPU 946. For example, the main CPU 500a may transmit a standby command consisting of identification information for identifying the command, transmission information indicating the requested number of medals to be inserted, and a checksum to the medal count control CPU 946 during standby before the start switch 418 for the next game is operated after the game ends. The main CPU 500a may also transmit a game medal insertion command consisting of identification information, transmission information indicating the requested number of medals to be inserted, and a checksum to the medal count control CPU 946 when the bet switch 416 is operated. The main CPU 500a may also transmit a start command consisting of identification information, transmission information indicating the requested number of medals to be inserted, and a checksum to the medal count control CPU 946 when the start switch is operated. The main CPU 500a may also transmit a payout end command consisting of identification information, transmission information indicating the payout number, and a checksum to the medal count control CPU 946 when the payout is completed. Furthermore, the main CPU 500a may transmit a one-game end command consisting of identification information, role ratio-related transmission information, and a checksum to the medal count control CPU 946 at the end of one game. Furthermore, the main CPU 500a may transmit a startup command consisting of identification information, transmission information required at startup, role ratio-related transmission information, and a checksum to the medal count control CPU 946 at startup. Furthermore, the main CPU 500a may transmit a change command consisting of identification information and a checksum to the medal count control CPU 946 when the internal state changes, when an error occurs, or when an error is cleared. The length of the above-mentioned command can be set arbitrarily.

ここで、メインCPU500aがメダル数制御CPU946へ送信するコマンドを、仮に、可変長にしたとする。そうすると、メダル数制御CPU946は、コマンドの受信開始時には、コマンドの長さが不明なため、コマンドの受信状態を何時まで維持すべきか、また、どのタイミングでコマンドの解析に入るべきかが明確ではなくなる。このようにコマンドを可変長にした場合、識別情報において、そのコマンドが、どのようなコマンドであり、何バイトのコマンドの長さであるかを示すことで、メダル数制御CPU946が、コマンドを容易に把握できるようにすることができる。 Now, let us assume that the command that the main CPU 500a sends to the medal count control CPU 946 is variable length. In that case, when the medal count control CPU 946 starts receiving the command, the length of the command is unknown, so it is unclear how long the command reception state should be maintained for, or at what point in time the command analysis should begin. When the command is made variable length in this way, the identification information indicates what type of command it is and how many bytes long it is, allowing the medal count control CPU 946 to easily understand the command.

また、例えば、識別情報において情報が割り当てられていないビットが存在する場合、そのビットに、メダル数制御CPU946で必要な情報である「再遊技状態」に割り当てることもできる。こうして、送信データの空き領域の有効活用を図り、再遊技状態という1バイトのコマンドを生成、送信する別途のプログラムを生成しなくて済む。 In addition, for example, if there is a bit in the identification information to which no information is assigned, that bit can be assigned to the "replay status," which is information required by the medal count control CPU 946. In this way, the free space in the transmission data can be effectively utilized, and it is not necessary to generate a separate program that generates and transmits a one-byte command for the replay status.

また、メダル数制御CPU946は、メインCPU500aに対し、所定のコマンドを送信する。例えば、メダル数制御CPU946は、メインCPU500aから上記のコマンド(待機中コマンド、遊技メダル投入時コマンド、スタート時コマンド、払出終了時コマンド、起動時コマンド)を受信すると、識別情報、投入可能枚数および遊技メダル数を示す伝達情報、チェックサムで構成される返信コマンドをメインCPU500aに送信するとしてもよい。なお、メダル数制御CPU946は、1遊技終了時コマンドおよび変更時コマンドに対しては返信コマンドを送信しない。 The medal count control CPU 946 also transmits a specified command to the main CPU 500a. For example, when the medal count control CPU 946 receives the above commands (standby command, medal insertion command, start command, payout completion command, and startup command) from the main CPU 500a, it may transmit a reply command consisting of identification information, transmission information indicating the number of medals that can be inserted and the number of medals used, and a checksum to the main CPU 500a. Note that the medal count control CPU 946 does not transmit a reply command in response to a game end command or a change command.

ここで、仮に、返信コマンドの識別情報の所定のビットに、メインCPU500aから送信されたコマンドをメダル数制御CPU946が正常に受信したことを示す「ACK」を対応付けたとする。かかる「ACK」は他のビットと独立して処理される。例えば、メインCPU500aは、識別情報の所定のビットが1であれば、その他のビットの内容に拘わらず、遊技の次の処理に移行することができる。また、メインCPU500aは、所定のビット以外のビットが成立していれば、遊技を進行しつつ、その成立したビットに対応する処理を行う。かかる構成により、識別情報の領域を有効利用し、情報の転送効率を高めることができる。 Let us assume that a specific bit of the identification information of the reply command is associated with an "ACK" indicating that the medal count control CPU 946 has normally received the command sent from the main CPU 500a. This "ACK" is processed independently of other bits. For example, if the specific bit of the identification information is 1, the main CPU 500a can proceed to the next game process regardless of the contents of the other bits. Also, if a bit other than the specific bit is set, the main CPU 500a performs the process corresponding to the set bit while continuing the game. This configuration makes it possible to effectively use the area of the identification information and increase the efficiency of information transfer.

また、このような、メインCPU500aとメダル数制御CPU946との通信は、常時実行するとしてもよいし、所定の制限を設けてもよい。例えば、メインCPU500aとメダル数制御CPU946との双方向通信を、スタートスイッチ418の操作による当選種別抽選やAT抽選の完了を契機として開始し、1遊技の終了に伴って制限するとしてもよい。本実施形態においては、スタートスイッチ418が操作されると、乱数発生器500dから乱数が取得(ラッチ)され、当選種別抽選乱数として当選種別抽選に用いられたり、AT抽選に用いられたりする。ここでは、スタートスイッチ418の操作による当選種別抽選やAT抽選が完了するまで、メインCPU500aとメダル数制御CPU946との通信を行わず、スタートスイッチ418の操作による当選種別抽選やAT抽選の完了を契機として通信を開始することで、メインCPU500aとメダル数制御CPU946との通信が乱数のラッチタイミングに影響を及ぼすおそれがなくなり、適切に乱数を取得することが可能となる。 In addition, such communication between the main CPU 500a and the medal count control CPU 946 may be performed at all times, or a predetermined limit may be set. For example, two-way communication between the main CPU 500a and the medal count control CPU 946 may be started when the winning type lottery or AT lottery is completed by operating the start switch 418, and may be limited when one game ends. In this embodiment, when the start switch 418 is operated, a random number is acquired (latched) from the random number generator 500d, and is used as a winning type lottery random number for the winning type lottery or for the AT lottery. Here, communication between the main CPU 500a and the medal count control CPU 946 is not performed until the winning type lottery or AT lottery is completed by operating the start switch 418, and communication is started when the winning type lottery or AT lottery is completed by operating the start switch 418. This eliminates the risk that the communication between the main CPU 500a and the medal count control CPU 946 will affect the latch timing of the random number, and makes it possible to appropriately acquire the random number.

なお、図254(a)、図254(b)のように、メインCPU500aとメダル数制御CPU946とが別体で設けられている場合、両者は、上記のシリアル通信によるコマンドによって情報を伝達する。一方、図254(c)のように、メインCPU500aが、メダル数制御CPU946の代わりに、遊技に供する電子化メダルを管理する場合、メインRAM500cに共通する内部変数として情報を保持することとなる。 When the main CPU 500a and the medal count control CPU 946 are provided separately as in Figures 254(a) and 254(b), they transmit information using commands via the serial communication described above. On the other hand, when the main CPU 500a manages the electronic medals used in games instead of the medal count control CPU 946 as in Figure 254(c), the information is held as a common internal variable in the main RAM 500c.

(コマンド管理)
上述したように、メインCPU500aからメダル数制御CPU946に、情報として複数種類のコマンド(待機中コマンド、遊技メダル投入時コマンド、スタート時コマンド、払出終了時コマンド、1遊技終了時コマンド、起動時コマンド、変更時コマンド)が送信される。また、メダル数制御CPU946からメインCPU500aに返信コマンドが送信される。メインCPU500aは、その返信コマンドを正常に受信し、その内容が「ACK」を示していれば、メインCPU500aとメダル数制御CPU946との通信が正常に完了したとして次の処理に移行することができる。
(Command Management)
As described above, the main CPU 500a transmits a number of types of commands (standby command, command when a game medal is inserted, start command, command when payout is completed, command when one game is completed, command when booting, and command when changed) as information to the medal count control CPU 946. In addition, a reply command is transmitted from the medal count control CPU 946 to the main CPU 500a. If the main CPU 500a normally receives the reply command and the content of the reply command indicates "ACK", it is determined that communication between the main CPU 500a and the medal count control CPU 946 has been normally completed and the process can proceed to the next step.

しかし、メインCPU500aとメダル数制御CPU946との通信は必ずしも正常に完了するとは限らない。例えば、メインCPU500aが正常にコマンドを送信したものの、何らかの理由により、メダル数制御CPU946がコマンドを正常に受信できない場合がある。また、メダル数制御CPU946は、メインCPU500aからのコマンドを正常に受信し、そのコマンドに対する返信コマンドを正常に送信したものの、何らかの理由により、メインCPU500aが返信コマンドを正常に受信できない場合がある。ただし、いずれの場合においても、メインCPU500aは、メダル数制御CPU946がコマンドを正常に受信したか否かを判断することができない。したがって、処理を進めるため、メインCPU500aは、直前に送信したコマンドをメダル数制御CPU946に再送することとなる。 However, communication between the main CPU 500a and the medal count control CPU 946 is not always completed normally. For example, the main CPU 500a may send a command normally, but for some reason the medal count control CPU 946 may not receive the command normally. Also, the medal count control CPU 946 may receive a command from the main CPU 500a normally and send a reply command to that command normally, but for some reason the main CPU 500a may not receive the reply command normally. In either case, however, the main CPU 500a cannot determine whether the medal count control CPU 946 received the command normally. Therefore, in order to proceed with the process, the main CPU 500a will resend the command it sent immediately before to the medal count control CPU 946.

ここでは、払出終了時コマンドの送信が正常に完了しない場合を例示する。前者、すなわち、メインCPU500aが正常にコマンドを送信したが、メダル数制御CPU946がコマンドを正常に受信できない場合、メダル数制御CPU946は、払出終了時コマンド自体を有効に処理していないので、メインCPU500aが払出終了時コマンドを再送したとしても、メダル数制御CPU946が、再送された払出終了時コマンドを正常に受信できれば、問題は生じない。 Here, we will explain an example of a case where the transmission of the payout end command is not completed normally. In the former case, i.e., when the main CPU 500a transmits the command normally but the medal count control CPU 946 cannot receive the command normally, the medal count control CPU 946 has not effectively processed the payout end command itself. Therefore, even if the main CPU 500a resends the payout end command, no problem will occur as long as the medal count control CPU 946 can receive the resent payout end command normally.

しかし、後者、すなわち、メダル数制御CPU946が、メインCPU500aからのコマンドを正常に受信し、そのコマンドに対する返信コマンドを正常に送信したが、メインCPU500aが返信コマンドを正常に受信できない場合、メダル数制御CPU946は、払出終了時コマンドを有効に処理している可能性が高い。例えば、メダル数制御CPU946が、払出終了時コマンドを正常に受信し、払出終了時コマンドに含まれる払出枚数を遊技メダル数に加算したとする。メダル数制御CPU946は、返信コマンドを正常に送信するが、メインCPU500aが返信コマンドを正常に受信したか否かを把握できない。そして、メインCPU500aが、返信コマンドを正常に受信できず、払出終了時コマンドを再送し、メダル数制御CPU946が、その払出終了時コマンドを正常に受信すると、払出終了時コマンドに含まれる払出枚数を、さらに遊技メダル数に加算するおそれがある。そうすると、電子化メダルの払い出し契機1回に対し、その払出枚数が複数回繰り返し遊技メダル数に加算されることになり、遊技者は、遊技利益を不当に得ることになる。また、主制御基板500とメダル数制御基板920との間のハーネスを操作し、払出終了時コマンドを不正に複数回送信した場合も、上記と同じように、払出枚数が複数回繰り返し遊技メダル数に加算される事象が生じ得る。 However, in the latter case, that is, when the medal count control CPU 946 normally receives a command from the main CPU 500a and normally transmits a reply command to that command, but the main CPU 500a is unable to normally receive the reply command, it is highly likely that the medal count control CPU 946 is validly processing the payout end command. For example, suppose that the medal count control CPU 946 normally receives the payout end command and adds the payout number included in the payout end command to the game medal count. The medal count control CPU 946 normally transmits the reply command, but is unable to grasp whether the main CPU 500a normally received the reply command. Then, if the main CPU 500a is unable to normally receive the reply command and resends the payout end command, and the medal count control CPU 946 normally receives the payout end command, there is a risk that the payout number included in the payout end command will be further added to the game medal count. In this case, the number of electronic medals paid out will be repeatedly added to the number of game medals for each payout trigger, and the player will obtain unfair gaming profits. Also, if the harness between the main control board 500 and the medal count control board 920 is manipulated to send the payout end command illegally multiple times, an event similar to the above may occur in which the number of payout medals is repeatedly added to the number of game medals.

そこで、本実施形態では、メインCPU500aからメダル数制御CPU946に送信されたコマンドを適切に1回だけ有効とする。具体的に、メダル数制御CPU946は、メインCPU500a(外部)から同一種類のコマンド(第1の情報)を連続して受信すると、2回目以降に受信した同一種類のコマンドを無効とし、そのコマンドに対する処理を行わない。ここで、コマンドは、上述した待機中コマンド、遊技メダル投入時コマンド、スタート時コマンド、払出終了時コマンド、1遊技終了時コマンド、起動時コマンド、変更時コマンドを言い、例えば、払出終了時コマンドの後に、他のコマンドを受信することなく、払出終了時コマンドを受信した場合、同一種類のコマンドを連続して受信したこととなる。なお、メインCPU500aから同一種類のコマンドを2回以上連続して受信した場合に、必ずしも2回目以降の同一種類のコマンドを無効とするとは限らない。例えば、1ベットスイッチの操作が2回以上連続して行われた場合等、コマンドの連続受信を許容する所定の状況下において所定の同一種類のコマンドが2回以上連続して受信された場合、メダル数制御CPU946は、2回目以降の同一種類のコマンドも有効に処理するとしてもよい。 Therefore, in this embodiment, the command sent from the main CPU 500a to the medal count control CPU 946 is appropriately validated only once. Specifically, when the medal count control CPU 946 receives the same type of command (first information) continuously from the main CPU 500a (external), it invalidates the same type of command received from the second time onwards and does not process the command. Here, the command refers to the above-mentioned waiting command, game medal insertion command, start command, payout end command, one game end command, startup command, and change command. For example, if a payout end command is received without receiving any other command after a payout end command, it means that the same type of command has been received continuously. Note that when the same type of command is received from the main CPU 500a two or more times in succession, the same type of command received from the second time onwards is not necessarily invalidated. For example, if a specific command of the same type is received two or more times in succession under a specific situation that allows for the continuous reception of commands, such as when a 1 bet switch is operated two or more times in succession, the medal count control CPU 946 may process the second and subsequent commands of the same type validly.

また、メダル数制御CPU946は、メインCPU500aから所定のコマンド(第1の情報)を受信すると、その所定のコマンドと異なる特定のコマンド(第2の情報)を受信するまで、最初に受信した所定のコマンドの後に受信した所定のコマンドを無効とするとしてもよい。例えば、メダル数制御CPU946が、一旦、メインCPU500aから払出終了時コマンドを受信すると、特定のコマンド、例えば、スタート時コマンドを受信するまで、後に受信した払出終了時コマンドを無効とする。このとき、最初に受信した所定のコマンドの後に受信した所定のコマンドが有効となるのは、あくまで、特定のコマンド(第2の情報)を受信した場合であり、所定のコマンドを最初に受信してから次に受信するまでに、特定のコマンド(第2の情報)以外のコマンドや情報を受信したとしても、後に受信した払出終了時コマンドを無効とする。例えば、一旦、メインCPU500aから所定のコマンドとして払出終了時コマンドを受信すると、特定のコマンドとしてスタート時コマンドを受信するまでは、他の待機中コマンド、遊技メダル投入時コマンド、1遊技終了時コマンド、起動時コマンド、変更時コマンドを受信したとしても、後に受信した払出終了時コマンドを無効とする。 In addition, when the medal count control CPU 946 receives a predetermined command (first information) from the main CPU 500a, it may invalidate the predetermined command received after the first received predetermined command until it receives a specific command (second information) different from the predetermined command. For example, once the medal count control CPU 946 receives a payout end command from the main CPU 500a, it invalidates the payout end command received later until it receives a specific command, for example, a start command. At this time, the predetermined command received after the first received predetermined command is only valid when a specific command (second information) is received, and even if commands or information other than the specific command (second information) are received between the first and next reception of the predetermined command, the payout end command received later is invalidated. For example, once the payout end command is received as a predetermined command from the main CPU 500a, the payout end command received later is invalidated until it receives a start command as a specific command, even if other standby commands, game medal insertion commands, one game end commands, start commands, and change commands are received.

なお、ここでは、メダル数制御CPU946が、メインCPU500aから所定のコマンド(第1の情報)を受信すると、特定のコマンド(第2の情報)を受信することを条件に、最初に受信した所定のコマンドの後に受信した所定のコマンドを有効に処理する例を挙げて説明するが、特定のコマンド(第2の情報)に限らず、所定のコマンド(第1の情報)以外の何らかのコマンドや任意の情報を受信することを条件に、メダル数制御CPU946は、最初に受信した所定のコマンドの後に受信した所定のコマンドを有効に処理するとしてもよい。 Note that, here, an example is given in which the medal count control CPU 946, upon receiving a specified command (first information) from the main CPU 500a, validly processes a specified command received after the first received specified command, provided that a specific command (second information) is received; however, the medal count control CPU 946 may also validly process a specified command received after the first received specified command, provided that any command or any information other than the specified command (first information) is received, not limited to a specific command (second information).

図274~図276は、メダル数制御CPU946におけるコマンド受信処理の流れを示したフローチャートである。ここでは、本実施形態に関係する処理を説明し、本実施形態に関係しない、例えば、具体的なコマンドの生成処理等は省略する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。また、ここでは、フラグとして1バイトのバッファ(投入要求バッファ、IN信号確認バッファ、払出確認バッファ、主受信コマンドエラーバッファ)を用い、「0h」と「FFh」の2値を切り換えている。ここで、フラグとしてビット値ではなくバイト値を用いているのは、ビット値の場合、バイト値を読み出した後、さらにビット自体を判定する処理を実行しなくてはならず、判定するための総コマンドサイズが却って長くなるからである。なお、フラグとして用いられる上記の各バッファは、バックアップされており、電源断時においても初期化されない。 Figures 274 to 276 are flow charts showing the flow of command reception processing in the medal count control CPU 946. Here, processing related to this embodiment is explained, and processing not related to this embodiment, such as specific command generation processing, is omitted. The numerical values of step S in this figure are used only in the explanation of this figure. Also, here, 1-byte buffers (insertion request buffer, IN signal confirmation buffer, payout confirmation buffer, main reception command error buffer) are used as flags, switching between two values, "0h" and "FFh". Here, byte values are used as flags instead of bit values because, in the case of bit values, after reading the byte value, a process must be executed to judge the bit itself, and the total command size for judgment becomes longer. Note that each of the above buffers used as flags is backed up, and is not initialized even when the power is turned off.

図274に示すように、メダル数制御CPU946は、メインCPU500aから正常にコマンドを受信すると、その受信したコマンド(受信コマンド)が起動時コマンドであるか否か判定する(S1)。その結果、受信コマンドが起動時コマンドであれば(S1におけるYES)、メダル数制御CPU946は、遊技機設置情報を受信する遊技機設置情報受信処理を行い(S2)、主制御チップメーカコードを確認するメーカコード確認処理を行って(S3)、当該コマンド受信処理を終了する。また、受信コマンドが起動時コマンドでなければ(S1におけるNO)、メダル数制御CPU946は、受信コマンドが払出終了時コマンドであるか否か判定する(S4)。その結果、受信コマンドが払出終了時コマンドであれば(S4におけるYES)、メダル数制御CPU946は、払出枚数設定処理(S5)を実行し、当該コマンド受信処理を終了する。かかる払出枚数設定処理は後程詳述する。 As shown in FIG. 274, when the medal count control CPU 946 normally receives a command from the main CPU 500a, it determines whether the received command (received command) is a startup command (S1). As a result, if the received command is a startup command (YES in S1), the medal count control CPU 946 performs gaming machine installation information reception processing to receive gaming machine installation information (S2), performs manufacturer code confirmation processing to confirm the main control chip manufacturer code (S3), and ends the command reception processing. Also, if the received command is not a startup command (NO in S1), the medal count control CPU 946 determines whether the received command is a payout end command (S4). As a result, if the received command is a payout end command (YES in S4), the medal count control CPU 946 executes payout number setting processing (S5) and ends the command reception processing. Such payout number setting processing will be described in detail later.

また、受信コマンドが払出終了時コマンドでなければ(S4におけるNO)、メダル数制御CPU946は、受信コマンドが1遊技終了時コマンドであるか否か判定する(S6)。その結果、受信コマンドが1遊技終了時コマンドであれば(S6におけるYES)、メダル数制御CPU946は、遊技機性能情報を設定する遊技機性能情報設定処理を行い(S7)、当該コマンド受信処理を終了する。また、受信コマンドが1遊技終了時コマンドでなければ(S6におけるNO)、メダル数制御CPU946は、受信コマンドが変更時コマンドであるか否か判定する(S8)。その結果、受信コマンドが変更時コマンドであれば(S8におけるYES)、メダル数制御CPU946は、主制御状態を受信する主制御状態受信処理(S9)を実行し、当該コマンド受信処理を終了する。 If the received command is not a payout end command (NO in S4), the medal count control CPU 946 determines whether the received command is a one-game end command (S6). If the received command is a one-game end command (YES in S6), the medal count control CPU 946 performs a game machine performance information setting process to set game machine performance information (S7) and ends the command reception process. If the received command is not a one-game end command (NO in S6), the medal count control CPU 946 determines whether the received command is a change command (S8). If the received command is a change command (YES in S8), the medal count control CPU 946 executes a main control status reception process (S9) to receive the main control status and ends the command reception process.

また、受信コマンドが変更時コマンドでなければ(S8におけるNO)、メダル数制御CPU946は、電子化メダルの投入要求枚数を更新する投入要求枚数更新処理(S10)を実行し、受信コマンドがスタート時コマンドであるか否か判定する(S11)。その結果、受信コマンドがスタート時コマンドであれば(S11におけるYES)、メダル数制御CPU946は、遊技開始処理(S12)を実行し、当該コマンド受信処理を終了する。かかる遊技開始処理は後程詳述する。また、受信コマンドがスタート時コマンドでなければ(S11におけるNO)、メダル数制御CPU946は、当該コマンド受信処理を終了する。 If the received command is not a change command (NO in S8), the medal count control CPU 946 executes a requested number of medals to be inserted update process (S10) to update the requested number of electronic medals to be inserted, and determines whether the received command is a start command (S11). As a result, if the received command is a start command (YES in S11), the medal count control CPU 946 executes a game start process (S12) and ends the command reception process. Such game start process will be described in detail later. If the received command is not a start command (NO in S11), the medal count control CPU 946 ends the command reception process.

かかる図274のフローチャートでは、複数種類のコマンドのいずれを受信したかに応じて、排他的かつ独立して処理が実行されている。例えば、受信コマンドが払出終了時コマンドであれば、払出枚数設定処理(S5)は行われるが、遊技開始処理(S12)が行われることはなく、受信コマンドがスタート時コマンドであれば、遊技開始処理(S12)は行われるが、払出枚数設定処理(S5)が行われることはない。本実施形態においては、払出終了時コマンドの受信に応じて実行される払出枚数設定処理(S5)と、スタート時コマンドの受信に応じて実行される遊技開始処理(S12)とを独立して管理し、払出確認バッファおよびIN信号確認バッファを切り換えることで、メダル数制御CPU946が受信したコマンドを適切に管理する。 In the flowchart of FIG. 274, processes are executed exclusively and independently depending on which of the multiple types of commands is received. For example, if the received command is a payout end command, the payout number setting process (S5) is executed but the game start process (S12) is not executed, and if the received command is a start command, the game start process (S12) is executed but the payout number setting process (S5) is not executed. In this embodiment, the payout number setting process (S5) executed in response to the receipt of a payout end command and the game start process (S12) executed in response to the receipt of a start command are managed independently, and the payout confirmation buffer and the IN signal confirmation buffer are switched to appropriately manage the commands received by the medal count control CPU 946.

図275に示す払出枚数設定処理(S5)において、メダル数制御CPU946は、投入要求バッファに0hを設定し(S5-1)、IN信号確認バッファに0hを設定する(S5-2)。ここでは、IN信号確認バッファに0hを設定することで、後述する遊技開始処理(S12)において受信するスタート時コマンドの無効化を解除している。続いて、メダル数制御CPU946は、払出確認バッファが0hであるか否か判定する(S5-3)。その結果、払出確認バッファが0hでなければ(S5-3におけるNO)、払出終了時コマンドの受信が1回目ではないこととなるので、メダル数制御CPU946は、当該払出枚数設定処理を終了する。一方、払出確認バッファが0hであれば(S5-3におけるYES)、払出終了時コマンドの受信が1回目ということになるので、メダル数制御CPU946は、払出確認バッファにFFhを設定して(S5-4)、2回目以降の払出終了時コマンドを無効化する。次に、メダル数制御CPU946は、払出枚数が16枚以上であるか否か判定する(S5-5)。その結果、払出枚数が16枚以上であれば(S5-5におけるYES)、主受信コマンドエラーバッファにFFhを設定して(S5-6)、当該払出枚数設定処理を終了する。 In the payout number setting process (S5) shown in FIG. 275, the medal count control CPU 946 sets the input request buffer to 0h (S5-1) and sets the IN signal confirmation buffer to 0h (S5-2). Here, by setting the IN signal confirmation buffer to 0h, the invalidation of the start command received in the game start process (S12) described later is canceled. Next, the medal count control CPU 946 determines whether the payout confirmation buffer is 0h (S5-3). As a result, if the payout confirmation buffer is not 0h (NO in S5-3), the payout end command is not received for the first time, so the medal count control CPU 946 ends the payout number setting process. On the other hand, if the payout confirmation buffer is 0h (YES in S5-3), the payout end command is received for the first time, so the medal count control CPU 946 sets the payout confirmation buffer to FFh (S5-4) and invalidates the second and subsequent payout end commands. Next, the medal count control CPU 946 determines whether the payout number is 16 or more (S5-5). If the payout number is 16 or more (YES in S5-5), it sets FFh to the main received command error buffer (S5-6) and ends the payout number setting process.

一方、払出枚数が15枚以下であれば(S5-5におけるNO)、メダル数制御CPU946は、再遊技が作動しているか否か判定する(S5-7)。その結果、再遊技が作動していなければ(S5-7におけるNO)、メダル数制御CPU946は、払出枚数が0枚であるか否か判定する(S5-8)。その結果、払出枚数が0であれば(S5-8におけるYES)、メダル数制御CPU946は、当該払出枚数設定処理を終了する。一方、払出枚数が0でなければ(S5-8におけるNO)、メダル数制御CPU946は、遊技メダル数に払出枚数を加算して遊技メダル数を更新し(S5-9)、払出枚数を払出メダル数に設定する(S5-10)。こうして、遊技メダル数が適切に更新される。払出枚数が払出メダル数に設定されると(S5-10)、もしくは、再遊技が作動していれば(S5-7におけるYES)、メダル数制御CPU946は、遊技情報を設定する遊技情報設定処理を行って(S5-11)、当該払出枚数設定処理を終了する。 On the other hand, if the number of payouts is 15 or less (NO in S5-5), the medal count control CPU 946 determines whether or not replay is activated (S5-7). As a result, if replay is not activated (NO in S5-7), the medal count control CPU 946 determines whether or not the number of payouts is 0 (S5-8). As a result, if the number of payouts is 0 (YES in S5-8), the medal count control CPU 946 ends the payout number setting process. On the other hand, if the number of payouts is not 0 (NO in S5-8), the medal count control CPU 946 adds the payout number to the number of game medals to update the number of game medals (S5-9), and sets the payout number to the number of paid out medals (S5-10). In this way, the number of game medals is appropriately updated. When the payout number is set to the payout medal number (S5-10), or if replay is activated (YES in S5-7), the medal number control CPU 946 performs a game information setting process to set game information (S5-11), and ends the payout number setting process.

図276に示す遊技開始処理(S12)において、メダル数制御CPU946は、IN信号確認バッファが0hであるか否か判定する(S12-1)。その結果、IN信号確認バッファが0hでなければ(S12-1におけるNO)、スタート時コマンドの受信が1回目ではないこととなるので、メダル数制御CPU946は、当該遊技開始処理を終了する。一方、IN信号確認バッファが0hであれば(S12-1におけるYES)、スタート時コマンドの受信が1回目ということになるので、メダル数制御CPU946は、IN信号確認バッファにFFhを設定して(S12-2)、2回目以降のスタート時コマンドを無効化し、遊技情報を設定する遊技情報設定処理を行い(S12-3)、払出確認バッファに0hを設定して(S12-4)、当該遊技開始処理を終了する。ここでは、払出確認バッファに0hを設定することで、払出枚数設定処理(S5)において受信する払出終了時コマンドの無効化を解除している。なお、上記では、ステップS12-4を、S12-1においてYES判定された場合に実行することとしているが、ステップS12-1より前段で実行されるとしてもよい。 In the game start process (S12) shown in FIG. 276, the medal count control CPU 946 determines whether the IN signal confirmation buffer is 0h (S12-1). As a result, if the IN signal confirmation buffer is not 0h (NO in S12-1), the start command is not received for the first time, and the medal count control CPU 946 ends the game start process. On the other hand, if the IN signal confirmation buffer is 0h (YES in S12-1), the start command is received for the first time, and the medal count control CPU 946 sets the IN signal confirmation buffer to FFh (S12-2), invalidates the second and subsequent start commands, performs game information setting process to set game information (S12-3), sets the payout confirmation buffer to 0h (S12-4), and ends the game start process. Here, by setting the payout confirmation buffer to 0h, the invalidation of the payout end command received in the payout number setting process (S5) is canceled. In the above, step S12-4 is executed if the result of the judgment in S12-1 is YES, but it may be executed before step S12-1.

ここでは、メダル数制御CPU946が、メインCPU500aから同一種類である払出終了時コマンド(第1の情報)を連続して受信すると、2回目以降に受信した払出終了時コマンドを無効としている。具体的に、メダル数制御CPU946は、図275のステップS5-3において払出確認バッファが0hであれば、払出終了時コマンドの1回目の受信と判断し、払出確認バッファをFFhに切り換え、払出枚数に対するステップS5-6以降の処理を正常に実行する。その後、次に払出終了時コマンドを受信したとしても、ステップS5-3において払出確認バッファが0hではない(FFhである)と判定されるので、払出枚数に対するステップS5-6以降の処理が行われることはない(払出終了時コマンドが無効化される)。 Here, when the medal count control CPU 946 receives the same type of payout end command (first information) consecutively from the main CPU 500a, it invalidates the payout end command received the second time onwards. Specifically, if the payout confirmation buffer is 0h in step S5-3 of FIG. 275, the medal count control CPU 946 determines that the payout end command has been received for the first time, switches the payout confirmation buffer to FFh, and normally executes the processing of step S5-6 and subsequent steps for the payout number. After that, even if the next payout end command is received, it is determined in step S5-3 that the payout confirmation buffer is not 0h (it is FFh), so the processing of step S5-6 and subsequent steps for the payout number will not be performed (the payout end command is invalidated).

また、メダル数制御CPU946は、このように受信した払出終了時コマンド(第1の情報)を無効とする状況下において、メインCPU500aからスタート時コマンド(第2の情報)を受信すると、払出終了時コマンドの無効化を解除する。具体的に、メダル数制御CPU946は、図275のステップS5-3において払出確認バッファが0hであれば、払出確認バッファをFFhに切り換え、それ以降に受信した払出終了時コマンドを無効化している。しかし、その後に、スタート時コマンドを受信すると、図276のステップS12-4において払出確認バッファが0hにリセットされる。したがって、次に払出終了時コマンドが受信された場合、図275のステップS5-3において払出確認バッファが0h、すなわち、払出終了時コマンドが1回目の受信と判断され、払出枚数に対するステップS5-4以降の処理が正常に実行されることとなる。 In addition, when the medal count control CPU 946 receives a start command (second information) from the main CPU 500a under the circumstances where the received payout end command (first information) is invalidated in this way, the medal count control CPU 946 cancels the invalidation of the payout end command. Specifically, if the payout confirmation buffer is 0h in step S5-3 of FIG. 275, the medal count control CPU 946 switches the payout confirmation buffer to FFh and invalidates the payout end command received thereafter. However, if a start command is received thereafter, the payout confirmation buffer is reset to 0h in step S12-4 of FIG. 276. Therefore, when the next payout end command is received, the payout confirmation buffer is determined to be 0h in step S5-3 of FIG. 275, that is, the payout end command is determined to be received for the first time, and the processing from step S5-4 onwards for the payout number is executed normally.

また、メダル数制御CPU946は、メインCPU500aから同一種類であるスタート時コマンド(第1の情報)を連続して受信すると、2回目以降に受信したスタート時コマンドを無効としている。具体的に、メダル数制御CPU946は、図276のステップS12-1においてIN信号確認バッファが0hであれば、スタート時コマンドの1回目の受信と判断し、IN信号確認バッファをFFhに切り換え、ステップS12-3の遊技情報設定処理を正常に実行する。その後、次にスタート時コマンドを受信したとしても、ステップS12-1においてIN信号確認バッファが0hではない(FFhである)と判定されるので、ステップS12-3の遊技情報設定処理が行われることはない(スタート時コマンドが無効化される)。 In addition, when the medal count control CPU 946 receives the same type of start command (first information) consecutively from the main CPU 500a, it invalidates the second and subsequent received start commands. Specifically, if the IN signal confirmation buffer is 0h in step S12-1 of FIG. 276, the medal count control CPU 946 determines that the first start command has been received, switches the IN signal confirmation buffer to FFh, and normally executes the game information setting process in step S12-3. After that, even if the next start command is received, it is determined in step S12-1 that the IN signal confirmation buffer is not 0h (it is FFh), so the game information setting process in step S12-3 is not performed (the start command is invalidated).

また、メダル数制御CPU946は、このように受信したスタート時コマンド(第1の情報)を無効とする状況下において、その後に、メインCPU500aから払出終了時コマンド(第2の情報)を受信すると、スタート時コマンドの無効化を解除する。具体的に、メダル数制御CPU946は、図276のステップS12-1においてIN信号確認バッファが0hであれば、IN信号確認バッファをFFhに切り換え、それ以降に受信したスタート時コマンドを無効化している。しかし、払出終了時コマンドを受信すると、図275のステップS5-2においてIN信号確認バッファが0hにリセットされる。したがって、次にスタート時コマンドが受信された場合、図276のステップS12-1においてIN信号確認バッファが0h、すなわち、スタート時コマンドが1回目の受信と判断され、ステップS12-3の遊技情報設定処理が正常に実行されることとなる。 In addition, when the medal count control CPU 946 subsequently receives a payout end command (second information) from the main CPU 500a under the circumstances where the start command (first information) received in this way is invalidated, the medal count control CPU 946 cancels the invalidation of the start command. Specifically, if the IN signal confirmation buffer is 0h in step S12-1 of FIG. 276, the medal count control CPU 946 switches the IN signal confirmation buffer to FFh and invalidates any start commands received thereafter. However, when a payout end command is received, the IN signal confirmation buffer is reset to 0h in step S5-2 of FIG. 275. Therefore, when the next start command is received, the IN signal confirmation buffer is determined to be 0h in step S12-1 of FIG. 276, that is, the start command is determined to be received for the first time, and the game information setting process in step S12-3 is executed normally.

このように、コマンドが複数回連続して受信された場合において、2回目以降に受信した同一種類コマンドを無効化する構成により、そのコマンドに応じて、本来1回しか実行すべきでない処理を複数回実行することがなくなり、適切に遊技が進行される。また、主制御基板500とメダル数制御基板920との間に不正な基板が取り付けられ、この不正な基板によりコマンドが不正に複数回送信されたとしても、そのコマンドが無効化されるので、遊技利益が不当に獲得されることはない。 In this way, when a command is received multiple times in succession, the same type of command received from the second time onwards is invalidated, so that a process that should only be executed once in response to the command is not executed multiple times, and the game progresses appropriately. Also, even if an illegal board is attached between the main control board 500 and the medal count control board 920 and a command is illegally sent multiple times by this illegal board, the command is invalidated, so game profits will not be obtained unfairly.

なお、ここでは、払出終了時コマンドが複数回連続して受信された場合に2回目以降の受信を無効化するため払出確認バッファを切り換え、また、スタート時コマンドが複数回連続して受信された場合に2回目以降の受信を無効化するためIN信号確認バッファを切り換えている。払出終了時コマンドとスタート時コマンドとは排他的に処理されるため、本来、バッファは1つあれば足りる。しかし、1つのバッファの2値をそれぞれ払出終了時コマンドの許容とスタート時コマンドの許容とに割り当てると、1のバッファが、払出終了時コマンドかスタート時コマンドのいずれか一方を許容し、他を許容しない状態となっているときに、仮に、メダル数制御CPU946においてバックアップ異常が生じたり、主制御基板500において設定変更が生じると、許容されるべき他方のコマンドが許容されず、遊技が進行しないおそれがある。そこで、ここでは、払出終了時コマンドとスタート時コマンドとにそれぞれバッファ(払出確認バッファ、IN信号確認バッファ)を設け、バックアップ異常や設定変更等の所定の初期化条件を満たした場合、いずれのバッファも0hを設定することで、いずれのコマンドも許容する状態に遷移させる。かかる構成により、メダル数制御CPU946においてバックアップ異常が生じたり、主制御基板500において設定変更が生じた場合であっても、遊技を適切に進行することが可能となる。 In this case, if the end of payout command is received multiple times in succession, the payout confirmation buffer is switched to invalidate the second and subsequent receptions, and if the start command is received multiple times in succession, the IN signal confirmation buffer is switched to invalidate the second and subsequent receptions. Since the end of payout command and the start command are processed exclusively, one buffer is sufficient. However, if the two values of one buffer are assigned to allow the end of payout command and the start command, respectively, when one buffer is in a state where it allows either the end of payout command or the start command and does not allow the other, if a backup abnormality occurs in the medal count control CPU 946 or a setting change occurs in the main control board 500, the other command that should be allowed will not be allowed, and the game may not proceed. Therefore, here, a buffer (payout confirmation buffer, IN signal confirmation buffer) is provided for the end of payout command and the start command, and when a certain initialization condition such as a backup abnormality or a setting change is met, both buffers are set to 0h to transition to a state where both commands are allowed. This configuration allows the game to proceed properly even if a backup error occurs in the medal count control CPU 946 or if a setting change occurs in the main control board 500.

なお、1のバッファ、例えば、コマンド確認バッファが、払出終了時コマンドおよびスタート時コマンドのいずれも許容する状態を別途設けることで、本実施形態を1のバッファで実施することもできる。例えば、払出終了時コマンドおよびスタート時コマンドのいずれも許容する状態を0h、払出終了時コマンドのみを許容し、スタート時コマンドは許容しない状態を1h、スタート時コマンドのみを許容し、払出終了時コマンドは許容しない状態を2hと設定する。そして、メダル数制御CPU946は、払出終了時コマンドを受信すると、払出終了時コマンドが複数回連続して受信された場合に2回目以降の受信を無効化するため、コマンド確認バッファを2hに切り換え、また、スタート時コマンドを受信すると、スタート時コマンドが複数回連続して受信された場合に2回目以降の受信を無効化するため、コマンド確認バッファを1hに切り換える。そして、バックアップ異常や設定変更等の所定の初期化条件を満たした場合、コマンド確認バッファを0hに設定することで、いずれのコマンドも許容する状態に遷移させる。 This embodiment can also be implemented with one buffer, for example, by providing a separate state in which a command confirmation buffer allows both the end of payout command and the start command. For example, a state in which both the end of payout command and the start command are allowed is set to 0h, a state in which only the end of payout command is allowed and the start command is not allowed is set to 1h, and a state in which only the start command is allowed and the end of payout command is not allowed is set to 2h. When the medal count control CPU 946 receives a payout end command, it switches the command confirmation buffer to 2h in order to invalidate the second and subsequent receptions when the end of payout command is received multiple times in succession, and when it receives a start command, it switches the command confirmation buffer to 1h in order to invalidate the second and subsequent receptions when the start command is received multiple times in succession. When a predetermined initialization condition such as a backup abnormality or a setting change is met, the command confirmation buffer is set to 0h to transition to a state in which both commands are allowed.

なお、ここでは、メインCPU500aとメダル数制御CPU946とで送受信する情報の例としてコマンドを挙げて説明したが、かかる場合に限らず、データ、信号等、様々な内容を含むことができる。 Note that, here, commands have been given as an example of information sent and received between the main CPU 500a and the medal count control CPU 946, but this is not limited to this and can include a variety of content such as data and signals.

(VL接続信号による接続確認)
上述したように、メダルレス遊技機902と専用ユニット904との接続確認において、VL接続信号がONであれば、メダルレス遊技機902では、遊技を進行するとともに、遊技が可能な間、計数処理を受け付ける。一方、VL接続信号がOFFであれば、メダルレス遊技機902では、遊技停止処理を実行し、電子化メダルのベット、電子化メダルの精算、スタートスイッチ418の操作に基づく遊技進行のための処理、および、上述した計数処理を全て制限(禁止)する。これは、VL接続信号がOFFということは、メダルレス遊技機902が専用ユニット904と適切に接続されていない、または、専用ユニット904の電源がOFFしていると判断できるからである。
(Connection check by VL connection signal)
As described above, if the VL connection signal is ON in checking the connection between the medalless gaming machine 902 and the dedicated unit 904, the medalless gaming machine 902 proceeds with the game and accepts counting processing while the game is possible. On the other hand, if the VL connection signal is OFF, the medalless gaming machine 902 executes game stop processing and restricts (prohibits) all of the following: betting electronic medals, settling electronic medals, processing for game progress based on the operation of the start switch 418, and the counting processing described above. This is because if the VL connection signal is OFF, it can be determined that the medalless gaming machine 902 is not properly connected to the dedicated unit 904, or that the power supply of the dedicated unit 904 is OFF.

しかし、VL接続信号がONであっても、すなわち、メダルレス遊技機902と専用ユニット904とが適切に接続されており、かつ、専用ユニット904の電源がONと認識できる場合であっても、直ちに計数処理を実行しない方がよい場合がある。例えば、VL接続信号がONの状態で、主制御基板500とメダル数制御基板920との通信が確立されていなかったり、一旦、確立されたが、その後、通信接続が切断されている場合である。この場合も、計数処理を正常に実行できないので、メダルレス遊技機902が計数スイッチ922の操作を受け付けて、専用ユニット904に情報を送信したとしても、当該計数メダル数が消失してしまうおそれがある。そこで、本実施形態の変形例では、VL接続信号のみならず、主制御基板500とメダル数制御基板920との通信の確立状態も判断し、遊技停止処理を実行するか否か判断し、通信が確立されていなければ、遊技停止処理を行い、遊技の進行を制限する。なお、ここでは、VL接続信号がONの状態で、主制御基板500とメダル数制御基板920との通信が確立されていない場合、および、一旦、確立されたが、その後、通信接続が切断されている場合のいずれにおいても、遊技停止処理を行う例を挙げて説明したが、かかる場合に限らず、VL接続信号がONの状態で、主制御基板500とメダル数制御基板920との通信が確立されていなかった場合に遊技停止処理を行うが、一旦、確立されたが、その後、通信接続が切断されている場合には遊技停止処理のうち、電子化メダルのベット、電子化メダルの精算、スタートスイッチ418の操作に基づく遊技進行のための処理の制限のみ行い、計数処理は可能な状態を維持してもよい。 However, even if the VL connection signal is ON, that is, even if the medalless gaming machine 902 and the dedicated unit 904 are properly connected and the power supply of the dedicated unit 904 can be recognized as ON, there are cases where it is better not to immediately execute the counting process. For example, when the VL connection signal is ON, communication between the main control board 500 and the medal count control board 920 is not established, or is established once but then the communication connection is cut off. In this case, the counting process cannot be executed normally, so even if the medalless gaming machine 902 accepts the operation of the counting switch 922 and transmits information to the dedicated unit 904, the counted medal count may be lost. Therefore, in a modified example of this embodiment, not only the VL connection signal but also the established state of communication between the main control board 500 and the medal count control board 920 is judged, and it is judged whether or not to execute the game stop process, and if the communication is not established, the game stop process is executed and the progress of the game is restricted. Here, an example has been described in which game stop processing is performed in both cases where communication between the main control board 500 and the medal count control board 920 is not established when the VL connection signal is ON, and where communication is established once but then disconnected. However, this is not the only case. Game stop processing is performed when communication between the main control board 500 and the medal count control board 920 is not established when the VL connection signal is ON. However, when communication is established once but then disconnected, only the processing for game progress based on the bet of electronic medals, settlement of electronic medals, and operation of the start switch 418 may be restricted, and counting processing may be maintained as possible.

図277は、電源投入時の通信仕様を示したフローチャートである。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。例えば、メダルレス遊技機902の電源投入時において、主制御基板500のメインCPU500aは、メダル数制御基板920のメダル数制御CPU946と、所定のコマンド(起動時コマンド、返信コマンド)を送受信し、通信の確立状態を判断する。 Figure 277 is a flow chart showing the communication specifications when the power is turned on. The numerical values of step S in this figure are used only in the explanation of this figure. For example, when the medalless gaming machine 902 is turned on, the main CPU 500a of the main control board 500 sends and receives predetermined commands (start-up command, reply command) to and from the medal count control CPU 946 of the medal count control board 920, and determines whether communication has been established.

まず、メインCPU500aは、自己のレジスタを設定し(S1)、前回の電断時のバックアップを確認して(S2)、信号の待ち状態に移行する。かかる待ち状態において、メインCPU500aは、所定時間後に電断が生じることを示す電断予告信号がOFFであり、かつ、メダル数制御基板920から受信したコマンド許可信号がONであることを確認し(S3)、電断予告信号がONである、または、コマンド許可信号がOFFであれば(S3におけるNO)、待ち状態を維持する。 First, the main CPU 500a sets its own register (S1), checks the backup from the previous power outage (S2), and transitions to a signal waiting state. In this waiting state, the main CPU 500a checks whether the power outage warning signal, which indicates that a power outage will occur after a predetermined time, is OFF and whether the command permission signal received from the medal count control board 920 is ON (S3), and if the power outage warning signal is ON or the command permission signal is OFF (NO in S3), it maintains the waiting state.

これと並行して、メダル数制御CPU946は、自己のレジスタを設定し(S4)、前回の電断時のバックアップを確認し(S5)、起動時の初期設定処理を実行して(S6)、起動時コマンドの待ち状態に移行する。かかる起動時コマンド待ち状態において、メダル数制御CPU946は、起動時コマンドを受信したか確認し(S7)、受信した場合(S7におけるYES)、その起動時コマンドは正常であるか確認し(S8)、起動時コマンドを受信していない場合(S7におけるNO)、または、起動時コマンドが異常であれば(S8におけるNO)、起動時コマンドの待ち状態を維持する。なお、起動時コマンドおよび返信コマンドは、スタートビット、コマンドの種別を示す1バイト(8ビット)の情報、ストップビット、パリティビットのシリアル信号で構成されている。したがって、メダル数制御CPU946は、コマンドの種別が起動時コマンドを示しており、かつ、パリティビットが正常な場合に、起動時コマンドが正常であると判断する。 In parallel with this, the medal count control CPU 946 sets its own register (S4), checks the backup from the previous power outage (S5), executes the initial setting process at startup (S6), and transitions to a state of waiting for a startup command. In this startup command waiting state, the medal count control CPU 946 checks whether a startup command has been received (S7), and if it has been received (YES in S7), checks whether the startup command is normal (S8). If the startup command has not been received (NO in S7) or the startup command is abnormal (NO in S8), the startup command wait state is maintained. The startup command and reply command are composed of a serial signal of a start bit, 1 byte (8 bits) of information indicating the type of command, a stop bit, and a parity bit. Therefore, the medal count control CPU 946 determines that the startup command is normal if the type of command indicates a startup command and the parity bit is normal.

メインCPU500aは、電断予告信号がOFFであり、かつ、コマンド許可信号がONであれば(S3におけるYES)、起動時コマンドをメダル数制御CPU946に送信する(S9)。そして、メインCPU500aは、通信タイマを設定して(S10)、返信コマンドの待ち状態に移行する。かかる返信コマンド待ち状態において、メインCPU500aは、返信コマンドを受信したか確認し(S11)、受信した場合(S11におけるYES)、その返信コマンドが正常であるか確認し(S12)、返信コマンドを受信していない場合(S11におけるNO)、または、返信コマンドが異常であれば(S12におけるNO)、返信コマンドの待ち状態を維持する。なお、メインCPU500aは、コマンドの種別が返信コマンドを示しており、かつ、パリティビットが正常な場合に、返信コマンドが正常であると判断する。 If the power failure warning signal is OFF and the command permission signal is ON (YES in S3), the main CPU 500a sends a startup command to the medal count control CPU 946 (S9). The main CPU 500a then sets a communication timer (S10) and transitions to a state of waiting for a reply command. In this state of waiting for a reply command, the main CPU 500a checks whether a reply command has been received (S11), and if it has been received (YES in S11), checks whether the reply command is normal (S12). If it has not received a reply command (NO in S11) or the reply command is abnormal (NO in S12), the main CPU 500a maintains the state of waiting for a reply command. Note that the main CPU 500a determines that the reply command is normal if the type of command indicates a reply command and the parity bit is normal.

メインCPU500aが起動時コマンドを送信すると(S9)、メダル数制御CPU946は、起動時コマンドを受信する(S7におけるYES)。メダル数制御CPU946は、その起動時コマンドが正常であると判断すると(S8におけるYES)、信号の待ち状態に移行する。かかる待ち状態において、メダル数制御CPU946は、主制御基板500から受信したコマンド許可信号がONであることを確認し(S13)、コマンド許可信号がOFFであれば(S13におけるNO)、待ち状態を維持する。一方、コマンド許可信号がONであれば(S13におけるYES)、メダル数制御CPU946は、返信コマンドをメインCPU500aに送信し(S14)、専用ユニット904との通信を開始して、計数可能状態に移行する。 When the main CPU 500a sends a startup command (S9), the medal count control CPU 946 receives the startup command (YES in S7). When the medal count control CPU 946 determines that the startup command is normal (YES in S8), it transitions to a signal waiting state. In this waiting state, the medal count control CPU 946 confirms that the command permission signal received from the main control board 500 is ON (S13), and if the command permission signal is OFF (NO in S13), it maintains the waiting state. On the other hand, if the command permission signal is ON (YES in S13), the medal count control CPU 946 sends a reply command to the main CPU 500a (S14), starts communication with the dedicated unit 904, and transitions to a counting possible state.

メダル数制御CPU946が返信コマンドを送信すると(S14)、メインCPU500aは、返信コマンドを受信する(S11におけるYES)。メインCPU500aは、その返信コマンドが正常であると判断すると(S12におけるYES)、設定変更処理または電断復帰処理に移行する。なお、ここでは、メインCPU500aが、返信コマンドを受信し、その返信コマンドが正常であると判断した場合に設定変更処理または電断復帰処理に移行する例を挙げて説明した。しかし、かかる場合に限らず、メインCPU500aは、起動時コマンドを送信した(S9)後、返信コマンドを待つこと無く、設定変更処理または電断復帰処理に移行し、設定変更処理または電断復帰処理が終了した後、返信コマンドの受信状態を確認し、返信コマンドが受信されていない、もしくは、返信コマンドは受信されたが正常でなければ、エラー状態に移行するとしてもよい。 When the medal count control CPU 946 sends a reply command (S14), the main CPU 500a receives the reply command (YES in S11). When the main CPU 500a determines that the reply command is normal (YES in S12), it transitions to the setting change process or power interruption recovery process. Note that here, an example has been described in which the main CPU 500a transitions to the setting change process or power interruption recovery process when it receives a reply command and determines that the reply command is normal. However, this is not limited to such a case. After sending the startup command (S9), the main CPU 500a transitions to the setting change process or power interruption recovery process without waiting for the reply command, and after the setting change process or power interruption recovery process is completed, it checks the reception status of the reply command, and transitions to an error state if the reply command has not been received or the reply command has been received but is not normal.

なお、返信コマンドの待ち状態では、ステップS10で設定された通信タイマが計時され、所定の時間が経過するとタイムアウトして、エラー状態に移行し、遊技メダル数表示装置924に、その内容を表示するとともに、通信処理を終了する。かかる通信処理は、電源を再投入しない限り復帰しないように設定されている。メインCPU500aは、このようなタイムアウトを通じ、メインCPU500aとメダル数制御CPU946との通信が確立されていない、もしくは、確立されたが、その後、通信接続が切断されていると判断して、遊技停止処理を行い、遊技の進行を制限する。 When waiting for a reply command, the communication timer set in step S10 is timed, and when a predetermined time has elapsed, it times out, transitions to an error state, and the contents are displayed on the game medal count display device 924, and the communication process ends. This communication process is set not to resume unless the power is turned back on. The main CPU 500a determines through this timeout that communication between the main CPU 500a and the medal count control CPU 946 has not been established, or that it has been established but the communication connection has since been cut off, and performs a game stop process to restrict the progress of the game.

図278は、操作時の通信仕様を示したフローチャートである。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。例えば、ベットスイッチ416、精算スイッチ437、スタートスイッチ418等が操作されると、主制御基板500のメインCPU500aは、メダル数制御基板920のメダル数制御CPU946と、コマンド(スタート時コマンド、返信コマンド)を送受信し、通信の確立状態を判断する。 Figure 278 is a flow chart showing the communication specifications during operation. The numerical values of step S in this figure will be used only in the explanation of this figure. For example, when the bet switch 416, settlement switch 437, start switch 418, etc. are operated, the main CPU 500a of the main control board 500 sends and receives commands (start command, reply command) to and from the medal count control CPU 946 of the medal count control board 920, and determines whether communication has been established.

例えば、スタートスイッチ418が操作されると、メインCPU500aは、信号の待ち状態に移行する。かかる待ち状態において、メインCPU500aは、電断予告信号がOFFであり、かつ、コマンド許可信号がONであることを確認し(S1)、電断予告信号がONである、または、コマンド許可信号がOFFであれば(S1におけるNO)、待ち状態を維持する。 For example, when the start switch 418 is operated, the main CPU 500a transitions to a state of waiting for a signal. In this waiting state, the main CPU 500a confirms that the power failure warning signal is OFF and the command permission signal is ON (S1), and if the power failure warning signal is ON or the command permission signal is OFF (NO in S1), it maintains the waiting state.

一方、電断予告信号がOFFであり、かつ、コマンド許可信号がONであれば(S1におけるYES)、メインCPU500aは、スタート時コマンドをメダル数制御CPU946に送信し(S2)、通信タイマを設定する(S3)。 On the other hand, if the power failure warning signal is OFF and the command permission signal is ON (YES in S1), the main CPU 500a sends a start command to the medal count control CPU 946 (S2) and sets the communication timer (S3).

メインCPU500aがスタート時コマンドを送信すると(S2)、メダル数制御CPU946は、受信したスタート時コマンドが正常か判断し(S4)、正常でなければ(S4におけるNO)、当該操作時の処理は実行しない。一方、受信したスタート時コマンドが正常であれば(S4におけるYES)、メダル数制御CPU946は、主制御基板500から受信したコマンド許可信号がONとなるまで待ち状態に移行する。かかる待ち状態において、メダル数制御CPU946は、コマンド許可信号がONであることを確認し(S5)、コマンド許可信号がOFFであれば(S5におけるNO)、待ち状態を維持する。一方、コマンド許可信号がONであれば(S5におけるYES)、メダル数制御CPU946は、返信コマンドをメインCPU500aに送信し(S6)、当該操作時の処理を終了する。 When the main CPU 500a sends a start command (S2), the medal count control CPU 946 judges whether the received start command is normal (S4), and if it is not normal (NO in S4), the medal count control CPU 946 does not execute the processing for that operation. On the other hand, if the received start command is normal (YES in S4), the medal count control CPU 946 transitions to a waiting state until the command permission signal received from the main control board 500 turns ON. In this waiting state, the medal count control CPU 946 confirms that the command permission signal is ON (S5), and if the command permission signal is OFF (NO in S5), it maintains the waiting state. On the other hand, if the command permission signal is ON (YES in S5), the medal count control CPU 946 sends a reply command to the main CPU 500a (S6), and ends the processing for that operation.

メインCPU500aは、返信コマンドを受信すると、その返信コマンドが正常であるか確認し(S7)、正常であれば(S7におけるYES)、遊技の進行が許可されているか確認し(S8)、返信コマンドが異常の場合(S7におけるNO)、および、遊技の進行が許可されていない場合(S8におけるNO)、返信コマンドの待ち状態を維持する。ここで、返信コマンドが正常であり(S7におけるYES)、遊技の進行が許可されていれば(S8におけるYES)、メインCPU500aは、遊技を進行する。 When the main CPU 500a receives a reply command, it checks whether the reply command is normal (S7), and if it is normal (YES in S7), it checks whether game progress is permitted (S8). If the reply command is abnormal (NO in S7) or if game progress is not permitted (NO in S8), it maintains a waiting state for the reply command. Here, if the reply command is normal (YES in S7) and game progress is permitted (YES in S8), the main CPU 500a proceeds with the game.

なお、電源投入時の通信仕様同様、返信コマンドの待ち状態では、ステップS3で設定された通信タイマが計時され、所定の時間が経過するとタイムアウトして、ベットスイッチ416、精算スイッチ437、スタートスイッチ418等の操作情報が破棄される(無効となる)。このように操作を無効とすることで、遊技を進行させない設定としている。 As with the communication specifications when the power is turned on, the communication timer set in step S3 is timed while waiting for a reply command, and when a predetermined time has elapsed, it times out and operation information for the bet switch 416, settlement switch 437, start switch 418, etc. is discarded (invalidated). By invalidating the operations in this way, the game is set not to proceed.

図279は、遊技終了時の通信仕様を示したフローチャートである。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。例えば、リール410が全て停止し、表示判定処理S2700が終了すると、主制御基板500のメインCPU500aは、メダル数制御基板920のメダル数制御CPU946と、コマンド(払出終了時コマンド、返信コマンド)を送受信し、通信の確立状態を判断する。 Figure 279 is a flow chart showing the communication specifications when a game ends. The numerical values of step S in this figure will be used only in the explanation of this figure. For example, when all the reels 410 come to a halt and the display determination process S2700 ends, the main CPU 500a of the main control board 500 sends and receives commands (payout end command, reply command) to and from the medal count control CPU 946 of the medal count control board 920, and determines whether communication has been established.

リール410が全て停止し、表示判定処理S2700が終了すると、メインCPU500aは、信号の待ち状態に移行する。かかる待ち状態において、メインCPU500aは、電断予告信号がOFFであり、かつ、コマンド許可信号がONであることを確認し(S1)、電断予告信号がONである、または、コマンド許可信号がOFFであれば(S1におけるNO)、待ち状態を維持する。 When all the reels 410 have stopped and the display determination process S2700 has ended, the main CPU 500a transitions to a signal waiting state. In this waiting state, the main CPU 500a confirms that the power failure warning signal is OFF and the command permission signal is ON (S1), and if the power failure warning signal is ON or the command permission signal is OFF (NO in S1), it maintains the waiting state.

一方、電断予告信号がOFFであり、かつ、コマンド許可信号がONであれば(S1におけるYES)、メインCPU500aは、払出終了時コマンドをメダル数制御CPU946に送信し(S2)、通信タイマを設定する(S3)。 On the other hand, if the power failure warning signal is OFF and the command permission signal is ON (YES in S1), the main CPU 500a sends a payout end command to the medal count control CPU 946 (S2) and sets the communication timer (S3).

メインCPU500aが払出終了時コマンドを送信すると(S2)、メダル数制御CPU946は、受信した払出終了時のマンドが正常か判断し(S4)、正常でなければ(S4におけるNO)、当該遊技終了時の処理は実行しない。一方、受信した払出終了時コマンドが正常であれば(S4におけるYES)、メダル数制御CPU946は、主制御基板500から受信したコマンド許可信号がONとなるまで待ち状態に移行する。かかる待ち状態において、メダル数制御CPU946は、コマンド許可信号がONであることを確認し(S5)、コマンド許可信号がOFFであれば(S5におけるNO)、待ち状態を維持する。一方、コマンド許可信号がONであれば(S5におけるYES)、メダル数制御CPU946は、返信コマンドをメインCPU500aに送信し(S6)、当該遊技終了時の処理を終了する。 When the main CPU 500a transmits a payout end command (S2), the medal count control CPU 946 judges whether the received payout end command is normal (S4), and if it is not normal (NO in S4), it does not execute the process at the end of the game. On the other hand, if the received payout end command is normal (YES in S4), the medal count control CPU 946 transitions to a waiting state until the command permission signal received from the main control board 500 turns ON. In this waiting state, the medal count control CPU 946 confirms that the command permission signal is ON (S5), and if the command permission signal is OFF (NO in S5), it maintains the waiting state. On the other hand, if the command permission signal is ON (YES in S5), the medal count control CPU 946 transmits a reply command to the main CPU 500a (S6), and ends the process at the end of the game.

メインCPU500aは、返信コマンドを受信すると、その返信コマンドが正常であるか確認し(S7)、返信コマンドが異常の場合(S7におけるNO)、返信コマンドの待ち状態を維持する。ここで、返信コマンドが正常であれば(S7におけるYES)、メインRAM500cの更新処理が実行され、遊技が進行する。 When the main CPU 500a receives a reply command, it checks whether the reply command is normal (S7), and if the reply command is abnormal (NO in S7), it maintains a state of waiting for the reply command. If the reply command is normal (YES in S7), the main RAM 500c is updated and the game proceeds.

なお、電源投入時の通信仕様同様、返信コマンドの待ち状態では、ステップS3で設定された通信タイマが計時され、所定の時間が経過するとタイムアウトして、メインRAM500cの更新は行われない。なお、ここで、タイムアウトが生じなくても、図278を用いて説明したように、ベットスイッチ416、精算スイッチ437、スタートスイッチ418等の操作情報が破棄される(無効となる)ので、いずれにしても遊技は進行しない。 As with the communication specifications when the power is turned on, the communication timer set in step S3 is timed while waiting for a reply command, and when a predetermined time has elapsed, it times out and the main RAM 500c is not updated. Even if a timeout does not occur, as explained using FIG. 278, the operation information of the bet switch 416, settlement switch 437, start switch 418, etc. is discarded (becomes invalid), so the game does not proceed in either case.

ここでは、メインCPU500aとメダル数制御CPU946との通信の確立状態も判断し、通信が確立されていなければ遊技停止処理を実行する構成により、遊技メダル数や計数メダル数の不整合を防ぐことができ、適切に計数処理を遂行することが可能となる。 Here, the establishment status of communication between the main CPU 500a and the medal count control CPU 946 is also determined, and if communication is not established, a game stop process is executed, which prevents inconsistencies between the number of game medals and the number of counted medals, and enables the counting process to be carried out appropriately.

(ベット処理)
上述したように、遊技者は、ベットスイッチ416を操作することによって、メダル数制御CPU946が管理するメダル保持部に保持された電子化メダル(遊技メダル数)のうち任意の枚数の電子化メダルを、メインCPU500aが管理するベット手段602を通じてベットすることができる。また、遊技者は、精算スイッチ437を操作することでベットされた電子化メダルを精算してメダル保持部に戻すことができる。
(Bet Processing)
As described above, the player can bet any number of electronic medals (number of game medals) held in the medal holding section managed by the medal number control CPU 946 through the betting means 602 managed by the main CPU 500a by operating the bet switch 416. In addition, the player can reset the bet electronic medals and return them to the medal holding section by operating the reset switch 437.

このとき、メインCPU500aからメダル数制御CPU946には、待機中コマンド、遊技メダル投入時コマンド、または、スタート時コマンドを通じて投入要求枚数が送信される。投入要求枚数は、1遊技において遊技者がベットを所望する電子化メダルの総数を示す。例えば、遊技者がベットスイッチ416を操作すると、投入要求枚数は、1遊技で必要とされる規定数、例えば、3枚となる。また、遊技者が1ベットスイッチを操作すると、規定数を上限に、操作の度に投入要求枚数が1枚ずつ加算される。例えば、遊技者が1ベットスイッチを操作する毎に、投入要求枚数は「0」→「1」→「2」→「3」と変化し、それ以降、1ベットスイッチを操作しても、投入要求枚数「3」を維持する。メインCPU500aは、ベットスイッチ416または1ベットスイッチが操作される度に、投入要求枚数が変化したか否かに拘わらず、投入要求枚数を含む遊技メダル投入時コマンドをメダル数制御CPU946に送信する。 At this time, the main CPU 500a transmits the requested number of medals to the medal count control CPU 946 via a standby command, a medal insertion command, or a start command. The requested number of medals indicates the total number of electronic medals that the player wishes to bet in one game. For example, when the player operates the bet switch 416, the requested number of medals becomes the specified number required in one game, for example, three medals. Also, when the player operates the 1 bet switch, the requested number of medals is increased by one each time the player operates the switch, up to the specified number. For example, each time the player operates the 1 bet switch, the requested number of medals changes from "0" to "1" to "2" to "3", and even if the 1 bet switch is operated thereafter, the requested number of medals to be inserted remains "3". Each time the bet switch 416 or the 1 bet switch is operated, the main CPU 500a transmits a medal insertion command including the requested number of medals to the medal count control CPU 946, regardless of whether the requested number of medals has changed.

そして、メダル数制御CPU946からメインCPU500aには、返信コマンドを通じて投入可能枚数および遊技メダル数が送信される。投入可能枚数は、1遊技においてメダル保持部からベット可能な電子化メダルの総数を示す。また、返信コマンドで示される遊技メダル数は、投入可能枚数がベットされた場合(ベットされた後)の残りの遊技メダル数(更新後の遊技メダル数)となっている。メインCPU500aは、メダル数制御CPU946から受信した投入可能枚数分の電子化メダルをベットするとともに、遊技メダル数を更新する。 The medal count control CPU 946 then sends the number of medals that can be inserted and the number of game medals to the main CPU 500a via a reply command. The number of medals that can be inserted indicates the total number of electronic medals that can be bet from the medal holding unit in one game. The number of game medals indicated in the reply command is the number of game medals remaining when the number of medals that can be inserted has been bet (after the bet has been made) (the updated number of game medals). The main CPU 500a bets the number of electronic medals that can be inserted received from the medal count control CPU 946, and updates the number of game medals.

なお、ここでは、メインCPU500aが、メダル数制御CPU946から返信コマンドを通じて投入可能枚数および遊技メダル数を受信するのを待って、投入可能枚数分の電子化メダルをベットする例を挙げて説明したが、かかる場合に限らず、メインCPU500aは、ベットスイッチ416または1ベットスイッチの操作に応じて、予め電子化メダルのベットを実行し、メダル数制御CPU946からの返信コマンドにより、整合をとる仕様を採用してもよい。例えば、メインCPU500aは、メインCPU500aにおいて既にベットが完了している電子化メダルの総数である投入メダル数(投入価値数)、投入要求枚数、および、遊技メダル数の情報をメインRAM500cに保持しているので、ベット可能な投入可能枚数を把握することができる。したがって、メインCPU500aは、ベットスイッチ416または1ベットスイッチの操作に応じて、投入可能枚数分の電子化メダルをベットし、投入要求枚数を含む遊技メダル投入時コマンドをメダル数制御CPU946に送信する。これに対し、メダル数制御CPU946は、投入可能枚数および遊技メダル数が示される返信コマンドをメインCPU500aに送信する。そして、メインCPU500aは、受信した投入可能枚数と、ベットされている電子化メダルの数とが同じであることを確認して(異なっていれば、後述するように遊技メダル投入時コマンドを再送したり、エラーとする)、ベット処理を終了する。かかる構成を採用することで、メインCPU500aは、ベットスイッチ416または1ベットスイッチの操作に応じて、即座に、電子化メダルのベットを行い、例えば、スタートスイッチ418の操作を有効化することで、遊技の進行が遅延するのを回避することが可能となる。 Here, an example was given in which the main CPU 500a waits to receive the number of insertable medals and the number of game medals from the medal count control CPU 946 through a reply command, and then bets the number of electronic medals that can be inserted. However, this is not the only case, and the main CPU 500a may bet electronic medals in advance in response to the operation of the bet switch 416 or the 1 bet switch, and may adopt a specification in which consistency is achieved by the reply command from the medal count control CPU 946. For example, the main CPU 500a holds information on the number of inserted medals (input value number), which is the total number of electronic medals that have already been bet by the main CPU 500a, the requested number of inserts, and the number of game medals in the main RAM 500c, so that it can grasp the number of insertable medals that can be bet. Therefore, the main CPU 500a bets the number of electronic medals that can be inserted in response to the operation of the bet switch 416 or the 1 bet switch, and transmits a game medal insertion command including the requested number of inserts to the medal count control CPU 946. In response, the medal count control CPU 946 sends a reply command indicating the number of medals that can be inserted and the number of medals that have been played to the main CPU 500a. The main CPU 500a then confirms that the received number of medals that can be inserted is the same as the number of electronic medals that have been bet (if they are different, it resends the medal insertion command or issues an error, as described below), and ends the betting process. By adopting this configuration, the main CPU 500a can immediately bet electronic medals in response to the operation of the bet switch 416 or 1 bet switch, and by enabling the operation of the start switch 418, for example, it is possible to avoid delays in the progress of the game.

このように、メインCPU500aは、メダル数制御CPU946に、ベットすべき投入要求枚数を送信し、メダル数制御CPU946は、ベット可能な投入可能枚数を返信する。したがって、基本的に、投入可能枚数と投入要求枚数とは等しくなるはずである。 In this way, the main CPU 500a transmits the requested number of coins to be bet to the medal count control CPU 946, and the medal count control CPU 946 replies with the number of coins that can be bet. Therefore, the number of coins that can be bet and the requested number of coins to be bet should basically be equal.

しかし、ベットスイッチ416や1ベットスイッチは、その操作回数が制限されていないので、1遊技が開始される前に複数回操作することができる。ここで、単純に、投入可能枚数=投入要求枚数としてしまうと、ベットスイッチ416や1ベットスイッチの操作の度に、投入要求枚数がメダル数制御CPU946に送信され、毎回、投入要求枚数が遊技メダル数から減算されるとともに、規定数を超えて電子化メダルがベットされてしまう。また、単純に、精算処理において投入要求枚数を遊技メダル数に加算するとしてしまうと、精算スイッチ437の操作の度に投入要求枚数がメダル数制御CPU946に送信され、毎回、投入要求枚数が遊技メダル数に加算されてしまう。さらに、遊技メダル数が投入可能枚数に満たない場合においても、単純に、投入可能枚数=投入要求枚数とすると、ベットにより遊技メダル数が負となるおそれが生じる。 However, since the number of times that the bet switch 416 and the 1 bet switch can be operated is not limited, they can be operated multiple times before one game is started. If the number of coins that can be inserted is simply set to the number of coins requested to be inserted, the number of coins requested to be inserted is transmitted to the medal count control CPU 946 each time the bet switch 416 or the 1 bet switch is operated, and the number of coins requested to be inserted is subtracted from the number of game medals each time, and electronic medals are bet in excess of the specified number. If the number of coins requested to be inserted is simply added to the number of game medals in the settlement process, the number of coins requested to be inserted is transmitted to the medal count control CPU 946 each time the settlement switch 437 is operated, and the number of coins requested to be inserted is added to the number of game medals each time. Furthermore, even if the number of game medals is less than the number of coins that can be inserted, if the number of coins that can be inserted is simply set to the number of coins requested to be inserted, there is a risk that the number of game medals will become negative due to the bet.

そこで、メダル数制御CPU946では、電子化メダルの数を適切に管理する。具体的に、ここでは、メインCPU500aのみならず、メダル数制御CPU946においても、投入メダル数を情報として、RAMに保持し、その投入メダル数が両CPUで等しくなるように制御する。そして、メダル数制御CPU946は、投入メダル数に基づいて投入可能枚数を導出する。例えば、既に電子化メダルがベットされていることを想定し、メダル数制御CPU946は、投入要求枚数から、投入メダル数を減算して投入可能枚数を導出する。また、このように導出された投入可能枚数が遊技メダル数より多い場合、導出された投入可能枚数を送信すると遊技メダル数が負となってしまうので、負とならないように、遊技メダル数の全数を投入可能枚数とする。 Therefore, the medal count control CPU 946 appropriately manages the number of electronic medals. Specifically, here, not only the main CPU 500a but also the medal count control CPU 946 holds the number of inserted medals as information in RAM, and controls so that the number of inserted medals is equal in both CPUs. The medal count control CPU 946 then derives the number of insertable medals based on the number of inserted medals. For example, assuming that electronic medals have already been bet, the medal count control CPU 946 derives the number of insertable medals by subtracting the number of inserted medals from the requested number of insertions. Furthermore, if the number of insertable medals derived in this way is greater than the number of game medals, transmitting the derived number of insertable medals would cause the number of game medals to become negative, so the total number of game medals is set to the number of insertable medals to prevent this from becoming negative.

図280は、メダル数制御CPU946におけるベット処理の流れを示したフローチャートである。ここでは、本実施形態に関係する処理を説明し、本実施形態に関係しない、例えば、具体的なコマンドの生成処理等は省略する。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。ここで、メダル数制御CPU946は、メダル数制御CPU946に属するRAMにおいて、遊技メダル数のみならず、投入メダル数も保持している。 Figure 280 is a flowchart showing the flow of bet processing in the medal count control CPU 946. Here, processing related to this embodiment will be explained, and processing that is not related to this embodiment, such as specific command generation processing, will be omitted. The numerical values of step S in this figure will be used only in the explanation of this figure. Here, the medal count control CPU 946 holds not only the number of game medals but also the number of inserted medals in the RAM belonging to the medal count control CPU 946.

メインCPU500aから正常にコマンドを受信し、そのコマンドが投入要求枚数を含むコマンド(待機中コマンド、遊技メダル投入時コマンド、スタート時コマンド)であれば、図280に示すように、メダル数制御CPU946は、投入要求枚数が0以上、かつ、3以下であるか否か判定する(S1)。その結果、投入要求枚数が0未満、または、4以上であれば(S1におけるNO)、投入要求枚数が許容範囲にないことを示すエラーコマンドをメインCPU500aに送信する等のエラー処理を行い(S2)、当該ベット処理を終了する。なお、ここでは、投入要求枚数の許容範囲を判定しているが、かかる場合に限らず、VL接続信号がONになっていること等、様々な許容条件を満たした場合にのみステップS3に移行でき、許容条件を満たさない場合、エラーコマンドをメインCPU500aに送信する等のエラー処理を行うとしてもよい。また、本実施形態では、投入要求枚数が0枚であった場合、精算処理を行うこととしているが、他の実施形態として、精算処理では投入要求枚数を0枚とする仕様を採用していない場合に、投入要求枚数が0枚であれば、エラーコマンドをメインCPU500aに送信する等のエラー処理を行うとしてもよい。 If a command is normally received from the main CPU 500a and the command is a command including the requested number of coins (a waiting command, a command when inserting a game coin, or a command at the start), as shown in FIG. 280, the medal count control CPU 946 judges whether the requested number of coins is 0 or more and 3 or less (S1). As a result, if the requested number of coins is less than 0 or 4 or more (NO in S1), an error command indicating that the requested number of coins is not within the allowable range is sent to the main CPU 500a (S2), and the bet process is terminated. Note that, although the allowable range of the requested number of coins is judged here, the process can proceed to step S3 only when various allowable conditions are met, such as when the VL connection signal is ON, and when the allowable conditions are not met, an error command is sent to the main CPU 500a, and other error processing may be performed. Also, in this embodiment, if the requested number of coins to be inserted is zero, settlement processing is performed. However, in other embodiments, if the settlement processing does not adopt a specification that sets the requested number of coins to be inserted at zero, if the requested number of coins to be inserted is zero, error processing such as sending an error command to the main CPU 500a may be performed.

一方、投入要求枚数が0以上、かつ、3以下であれば(S1におけるYES)、メダル数制御CPU946は、投入メダル数から投入要求枚数を減算し、増減枚数とする(S3)。ここで、投入メダル数は0~3の値をとり、投入要求枚数は0~3の値をとるので、増減枚数は-3~3のいずれかとなる。このとき、増減枚数が負の値であれば、メダル数制御CPU946からメインCPU500aへの電子化メダルのベットを示し、増減枚数が正の値であれば、メインCPU500aからメダル数制御CPU946への電子化メダルの精算を示す。したがって、例えば、投入要求枚数が0枚であれば、投入メダル数の全数が精算の対象となる。 On the other hand, if the requested number of medals to be inserted is equal to or greater than 0 and equal to or less than 3 (YES in S1), the medal count control CPU 946 subtracts the requested number of medals from the number of medals inserted, and determines the increase/decrease in the number of medals inserted (S3). Here, the number of medals inserted takes a value between 0 and 3, and the requested number of medals inserted takes a value between 0 and 3, so the increase/decrease in the number of medals inserted takes a value between 0 and 3, and so the increase/decrease in the number of medals inserted takes a value between -3 and 3. At this time, if the increase/decrease in the number of medals inserted is a negative value, it indicates a bet of electronic medals from the medal count control CPU 946 to the main CPU 500a, and if the increase/decrease in the number of medals inserted is a positive value, it indicates the settlement of electronic medals from the main CPU 500a to the medal count control CPU 946. Therefore, for example, if the requested number of medals to be inserted is 0, the total number of medals inserted is subject to settlement.

続いて、メダル数制御CPU946は、遊技メダル数に増減枚数を加算し、その結果を加算結果とする(S4)。かかる加算結果は、遊技メダル数が負になることを制限しない場合における更新後の遊技メダル数である。 Next, the medal count control CPU 946 adds the increased or decreased medal count to the game medal count, and sets the result as the addition result (S4). This addition result is the updated game medal count in the case where there is no restriction on the game medal count becoming negative.

次に、メダル数制御CPU946は、加算結果が負の値であるか否か判定する(S5)。その結果、加算結果が負の値であれば(S5におけるYES)、メダル数制御CPU946は、投入メダル数に現在の遊技メダル数を加算して投入可能枚数を導出する(S6)。加算結果が負であるということは、現在の遊技メダル数を全てベットしたとしても投入要求枚数に満たないということである。したがって、ここでは、可能な限り多くの電子化メダルをベットするため、現在の遊技メダル数の全数を投入メダル数に加算して投入可能枚数としている。そして、メダル数制御CPU946は、全数をベットした残り、すなわち0枚を更新後の遊技メダル数に設定する(S7)。 Next, the medal count control CPU 946 determines whether the addition result is a negative value (S5). As a result, if the addition result is a negative value (YES in S5), the medal count control CPU 946 adds the current number of game medals to the number of inserted medals to derive the number of medals that can be inserted (S6). If the addition result is negative, it means that even if the current number of game medals is all bet, it will not meet the requested number of medals to be inserted. Therefore, in this case, in order to bet as many electronic medals as possible, the total number of current game medals is added to the number of inserted medals to determine the number of medals that can be inserted. Then, the medal count control CPU 946 sets the remainder after all the number is bet, i.e., 0, as the updated number of game medals (S7).

一方、加算結果が負の値でなければ(S5におけるNO)、メダル数制御CPU946は、投入要求枚数をそのまま投入可能枚数とし(S8)、加算結果を更新後の遊技メダル数とする(S9)。ここでは、遊技メダル数が投入要求枚数に足りているので、投入可能枚数=投入要求枚数となり、加算結果をそのまま更新後の遊技メダル数とすることが可能となる。 On the other hand, if the sum is not a negative value (NO in S5), the medal count control CPU 946 sets the requested number of medals to the number that can be inserted (S8) and sets the sum to the updated number of game medals (S9). Here, since the number of game medals is sufficient to match the requested number of medals to be inserted, the number that can be inserted = the requested number of medals to be inserted, and the sum can be set to the updated number of game medals.

続いて、メダル数制御CPU946は、メダル数制御CPU946で管理している投入メダル数を、投入可能枚数に更新し(S10)、更新後の投入可能枚数および更新後の遊技メダル数を返信コマンドに設定し(S11)、当該ベット処理を終了する。こうして、返信コマンドがメインCPU500aに送信されることになる。 Then, the medal count control CPU 946 updates the number of inserted medals managed by the medal count control CPU 946 to the number that can be inserted (S10), sets the updated number that can be inserted and the updated number of game medals in the reply command (S11), and ends the bet process. In this way, the reply command is sent to the main CPU 500a.

メインCPU500aは、返信コマンドを通じて投入可能枚数を取得し、1遊技を開始することが可能となる。ただし、1遊技の開始条件が最大規定数のベットとなっている仕様において、メインCPU500aは、投入メダル数および遊技メダル数の情報を、メインRAM500cに保持しているので、遊技メダル数を全数ベットしても投入可能枚数が最大規定数に満たないか否か把握でき、最大規定数に満たない場合、1遊技の開始を制限するとしてもよい。例えば、メインCPU500aにおいて、投入可能枚数が最大規定数に満たないことが把握されると、投入要求枚数を含むコマンドをメダル数制御CPU946に送信しないとしたり、送信したとしても、メダル数制御CPU946が返信コマンドの代わりにエラーコマンドを送信したりすることができる(所謂「最適マックスベット」制御)。こうして、最大規定数に満たない枚数の電子化メダルがベットされている状態で遊技が進行されるのを回避することが可能となる。例えば、規定数として2枚と3枚が許容され、いずれの枚数を投入しても1遊技が可能な場合であっても、投入可能枚数が最大規定数である3枚に満たない場合(例えば、2枚しか投入されていない場合)には、遊技の進行を制限することができる。したがって、遊技メダル数が0の場合、メインCPU500aが、投入要求枚数を含むコマンドをメダル数制御CPU946に送信しないという仕様が可能となる。 The main CPU 500a can obtain the number of coins that can be inserted through the reply command and start one game. However, in a specification in which the start condition of one game is the maximum specified number of bets, the main CPU 500a holds information on the number of inserted medals and the number of game medals in the main RAM 500c, so it can grasp whether the number of coins that can be inserted does not reach the maximum specified number even if the total number of game medals is bet, and if it does not reach the maximum specified number, it may restrict the start of one game. For example, when the main CPU 500a grasps that the number of coins that can be inserted does not reach the maximum specified number, it can not send a command including the requested number of coins to the medal number control CPU 946, or even if it does, the medal number control CPU 946 can send an error command instead of the reply command (so-called "optimum max bet" control). In this way, it is possible to avoid the game proceeding in a state in which a number of electronic medals that does not reach the maximum specified number have been bet. For example, even if the specified number is allowed to be two or three and either number of medals can be inserted for one game, if the number of medals that can be inserted is less than the maximum specified number of three medals (for example, if only two medals are inserted), the progress of the game can be restricted. Therefore, if the number of game medals is zero, it is possible for the main CPU 500a to not send a command including the requested number of medals to be inserted to the medal count control CPU 946.

図281は、ベット処理の実際の計算例を示した説明図である。例えば、図281(a)に示すように、メダル数制御CPU946のRAMで保持されている遊技メダル数が「10」であり、投入メダル数が「0」であった場合に、メインCPU500aから、投入要求枚数を含むコマンドを受信し、その投入要求枚数が「3」であったとする。メダル数制御CPU946は、投入メダル数「0」から投入要求枚数「3」を減算し、増減枚数「-3」を導出し、遊技メダル数「10」に増減枚数「-3」を加算し、加算結果「7」を導出する。加算結果「7」は負の値ではないので、投入可能枚数は、投入要求枚数と等しい「3」となり、更新後の遊技メダル数は、加算結果と等しい「7」となり、投入メダル数は、投入可能枚数「3」となる。かかる投入可能枚数「3」と更新後の遊技メダル数「7」は返信コマンドに設定され、更新後の投入メダル数「3」はメダル数制御CPU946のRAMで保持される。 281 is an explanatory diagram showing an actual calculation example of the bet process. For example, as shown in FIG. 281(a), when the number of game medals held in the RAM of the medal count control CPU 946 is "10" and the number of inserted medals is "0", a command including the requested number of medals to be inserted is received from the main CPU 500a, and the requested number of medals to be inserted is "3". The medal count control CPU 946 subtracts the requested number of medals to be inserted "3" from the number of inserted medals "0" to derive the increase/decrease number of medals "-3", and adds the increase/decrease number of medals "-3" to the number of game medals "10", to derive the addition result "7". Since the addition result "7" is not a negative value, the number of medals that can be inserted becomes "3", which is equal to the requested number of medals to be inserted, and the number of game medals after the update becomes "7", which is equal to the addition result, and the number of inserted medals becomes the number of medals that can be inserted "3". The number of medals that can be inserted, "3," and the updated number of medals to be played, "7," are set in the reply command, and the updated number of medals inserted, "3," is stored in the RAM of the medal count control CPU 946.

また、図281(b)に示すように、メダル数制御CPU946のRAMで保持されている遊技メダル数が「1」であり、投入メダル数が「1」であった場合に、メインCPU500aから、投入要求枚数を含むコマンドを受信し、その投入要求枚数が「3」であったとする。メダル数制御CPU946は、投入メダル数「1」から投入要求枚数「3」を減算し、増減枚数「-2」を導出し、遊技メダル数「1」に増減枚数「-2」を加算し、加算結果「-1」を導出する。加算結果「-1」は負の値なので、投入可能枚数は、投入メダル数「1」に現在の遊技メダル数「1」を加算した「2」となり、更新後の遊技メダル数は、「0」となり、投入メダル数は、投入可能枚数と等しい「2」となる。かかる投入可能枚数「2」と更新後の遊技メダル数「0」は返信コマンドに設定され、更新後の投入メダル数「2」はメダル数制御CPU946のRAMで保持される。 281(b), when the number of game medals held in the RAM of the medal count control CPU 946 is "1" and the number of inserted medals is "1", a command including a requested number of medals to be inserted is received from the main CPU 500a, and the requested number of medals to be inserted is "3". The medal count control CPU 946 subtracts the requested number of medals to be inserted "3" from the number of inserted medals "1" to derive the increase/decrease number of medals "-2", and adds the increase/decrease number of medals "-2" to the number of game medals "1" to derive the addition result "-1". As the addition result "-1" is a negative value, the number of medals that can be inserted becomes "2", which is the sum of the number of inserted medals "1" and the current number of game medals "1", the number of game medals after the update becomes "0", and the number of inserted medals becomes "2", which is equal to the number of medals that can be inserted. This number of medals that can be inserted, "2," and the updated number of medals to be played, "0," are set in the reply command, and the updated number of medals inserted, "2," is stored in the RAM of the medal count control CPU 946.

また、図281(c)に示すように、メダル数制御CPU946のRAMで保持されている遊技メダル数が「3」であり、投入メダル数が「3」であった場合に、メインCPU500aから、投入要求枚数を含むコマンドを受信し、その投入要求枚数が「0」であったとする。かかる事象は、精算スイッチ437が操作された場合に生じ得る。メダル数制御CPU946は、投入メダル数「3」から投入要求枚数「0」を減算し、増減枚数「3」を導出し、遊技メダル数「3」に増減枚数「3」を加算し、加算結果「6」を導出する。加算結果「6」は負の値ではないので、投入可能枚数は、投入要求枚数と等しい「0」となり、更新後の遊技メダル数は、加算結果と等しい「6」となり、投入メダル数は、投入可能枚数「0」となる。かかる投入可能枚数「0」と更新後の遊技メダル数「6」は返信コマンドに設定され、更新後の投入メダル数「0」はメダル数制御CPU946のRAMで保持される。 281(c), when the number of game medals held in the RAM of the medal count control CPU 946 is "3" and the number of inserted medals is "3", a command including a requested number of medals to be inserted is received from the main CPU 500a, and the requested number of medals to be inserted is "0". Such an event can occur when the settlement switch 437 is operated. The medal count control CPU 946 subtracts the requested number of medals to be inserted "0" from the number of inserted medals "3" to derive the increase/decrease number of medals "3", and adds the increase/decrease number of medals "3" to the number of game medals "3" to derive the addition result "6". Since the addition result "6" is not a negative value, the number of medals that can be inserted becomes "0", which is equal to the requested number of medals to be inserted, the updated number of game medals becomes "6", which is equal to the addition result, and the number of inserted medals becomes the number of medals that can be inserted "0". This number of medals that can be inserted, "0," and the updated number of medals to be played, "6," are set in the reply command, and the updated number of medals inserted, "0," is stored in the RAM of the medal count control CPU 946.

また、図281(d)に示すように、メダル数制御CPU946のRAMで保持されている遊技メダル数が「2」であり、投入メダル数が「3」であった場合に、メインCPU500aから、投入要求枚数を含むコマンドを受信し、その投入要求枚数が「3」であったとする。かかる事象は、例えば、ベットスイッチ416を複数回操作した場合に生じ得る。また、メインCPU500aが投入要求枚数を含むコマンドをメダル数制御CPU946に送信し、メダル数制御CPU946は正常に受信したものの、何らかの理由により、メインCPU500aがメダル数制御CPU946からの返信コマンドを正常に受信できなかった場合に、メインCPU500aが投入要求枚数を含むコマンドをメダル数制御CPU946に再送信した場合にも生じ得る。メダル数制御CPU946は、投入メダル数「3」から投入要求枚数「3」を減算し、増減枚数「0」を導出し、遊技メダル数「2」に増減枚数「0」を加算し、加算結果「2」を導出する。加算結果「2」は負の値ではないので、投入可能枚数は、投入要求枚数と等しい「3」となり、更新後の遊技メダル数は、加算結果と等しい「2」となり、投入メダル数は、投入可能枚数「3」となる。かかる投入可能枚数「3」と更新後の遊技メダル数「2」は返信コマンドに設定され、更新後の投入メダル数「3」はメダル数制御CPU946のRAMで保持される。 281(d), when the number of game medals held in the RAM of the medal count control CPU 946 is "2" and the number of inserted medals is "3", a command including a requested number of medals to be inserted is received from the main CPU 500a, and the requested number of medals to be inserted is "3". Such an event may occur, for example, when the bet switch 416 is operated multiple times. It may also occur when the main CPU 500a sends a command including the requested number of medals to the medal count control CPU 946, and the medal count control CPU 946 receives it normally, but for some reason the main CPU 500a is unable to properly receive a reply command from the medal count control CPU 946, and the main CPU 500a resends a command including the requested number of medals to the medal count control CPU 946. The medal count control CPU 946 subtracts the requested number of medals to be inserted "3" from the number of medals inserted "3" to derive the increase/decrease number of medals "0", and adds the increase/decrease number of medals "0" to the number of game medals used "2" to derive the addition result "2". Because the addition result "2" is not a negative value, the number of medals that can be inserted becomes "3", which is equal to the requested number of medals to be inserted, and the updated number of game medals becomes "2", which is equal to the addition result, and the number of medals inserted becomes the number of medals that can be inserted "3". The number of medals that can be inserted "3" and the updated number of game medals "2" are set in the reply command, and the updated number of medals inserted "3" is held in the RAM of the medal count control CPU 946.

また、図281(e)に示すように、メダル数制御CPU946のRAMで保持されている遊技メダル数が「3」であり、投入メダル数が「0」であった場合に、メインCPU500aから、投入要求枚数を含むコマンドを受信し、その投入要求枚数が「0」であったとする。かかる事象は、例えば、精算スイッチ437を複数回操作した場合に生じ得る。また、メインCPU500aが投入要求枚数を含むコマンドをメダル数制御CPU946に送信し、メダル数制御CPU946は正常に受信したものの、何らかの理由により、メインCPU500aがメダル数制御CPU946からの返信コマンドを正常に受信できなかった場合に、メインCPU500aが投入要求枚数を含むコマンドをメダル数制御CPU946に再送信した場合にも生じ得る。メダル数制御CPU946は、投入メダル数「0」から投入要求枚数「0」を減算し、増減枚数「0」を導出し、遊技メダル数「3」に増減枚数「0」を加算し、加算結果「3」を導出する。加算結果「3」は負の値ではないので、投入可能枚数は、投入要求枚数と等しい「0」となり、更新後の遊技メダル数は、加算結果と等しい「3」となり、投入メダル数は、投入可能枚数「0」となる。かかる投入可能枚数「0」と更新後の遊技メダル数「3」は返信コマンドに設定され、更新後の投入メダル数「0」はメダル数制御CPU946のRAMで保持される。 281(e), when the number of game medals held in the RAM of the medal count control CPU 946 is "3" and the number of inserted medals is "0", a command including a requested number of medals to be inserted is received from the main CPU 500a, and the requested number of medals to be inserted is "0". Such an event may occur, for example, when the settlement switch 437 is operated multiple times. It may also occur when the main CPU 500a sends a command including the requested number of medals to the medal count control CPU 946, and the medal count control CPU 946 receives the command normally, but for some reason the main CPU 500a is unable to properly receive a reply command from the medal count control CPU 946, and the main CPU 500a resends a command including the requested number of medals to the medal count control CPU 946. The medal count control CPU 946 subtracts the requested number of medals to be inserted "0" from the number of medals inserted "0" to derive the increase/decrease number of medals "0", and adds the increase/decrease number of medals "0" to the number of game medals used "3" to derive the addition result "3". Because the addition result "3" is not a negative value, the number of medals that can be inserted becomes "0" which is equal to the requested number of medals to be inserted, and the updated number of game medals becomes "3" which is equal to the addition result, and the number of medals inserted becomes the number of medals that can be inserted "0". The number of medals that can be inserted "0" and the updated number of game medals "3" are set in the reply command, and the updated number of medals inserted "0" is held in the RAM of the medal count control CPU 946.

このように、メインCPU500aおよびメダル数制御CPU946のいずれにおいても、投入メダル数を情報として、それぞれのRAMで保持し、かつ、両CPUで投入メダル数が等しくなるよう制御する構成により、メダル数制御CPU946は、本来、メインCPU500aにおいてのみ管理される投入メダル数を把握することが可能となる。したがって、メダル数制御CPU946で管理している遊技メダル数、投入メダル数、および、メインCPU500aから取得した投入要求枚数に基づき、「投入メダル数-投入要求枚数」や「遊技メダル数+増減枚数」等の計算を通じて、投入可能枚数、更新後の遊技メダル数、更新後の投入メダル数を適切に導出することが可能となる。 In this way, both the main CPU 500a and the medal count control CPU 946 store the number of inserted medals as information in their respective RAMs, and by controlling both CPUs so that the number of inserted medals is equal, the medal count control CPU 946 is able to grasp the number of inserted medals that is normally managed only by the main CPU 500a. Therefore, based on the number of game medals and inserted medals managed by the medal count control CPU 946, and the requested number of medals to be inserted obtained from the main CPU 500a, it is possible to appropriately derive the number of medals that can be inserted, the updated number of game medals, and the updated number of inserted medals through calculations such as "number of inserted medals - requested number of medals" and "number of game medals + increase/decrease".

こうして、例えば、ベットスイッチ416や1ベットスイッチが複数回操作されたとしても、メダル数制御CPU946は、投入メダル数に基づいて適切に投入要求枚数を導出し、必要な電子化メダルの枚数だけ遊技メダル数から減算している。したがって、ベット処理において、規定数を超えて電子化メダルがベットされることはなく、精算処理において、不要に遊技メダル数に電子化メダルが加算されることもない。また、メダル数制御CPU946は、遊技メダル数が投入可能枚数に満たない場合、メダル保持部に保持している遊技メダル数を上限にベットさせるため、ベットにより遊技メダル数が負となることもない。 Thus, for example, even if the bet switch 416 or the 1 bet switch is operated multiple times, the medal count control CPU 946 appropriately derives the requested number of medals to be inserted based on the number of medals inserted, and subtracts the required number of electronic medals from the number of game medals. Therefore, in the bet process, electronic medals will not be bet in excess of the specified number, and in the settlement process, electronic medals will not be unnecessarily added to the number of game medals. Furthermore, if the number of game medals is less than the number that can be inserted, the medal count control CPU 946 will bet the number of game medals held in the medal holding section up to the upper limit, so that the number of game medals will not become negative as a result of the bet.

なお、主制御基板500において設定変更が生じると、メインCPU500aのRAMとメダル数制御CPU946のRAMとで保持される投入メダル数および遊技メダル数のいずれもが0にクリアされる。具体的に、設定変更が生じると、メインCPU500aは、自己のRAMが保持する投入メダル数および遊技メダル数を0にクリアする。そして、メインCPU500aは、メダル数制御CPU946を介して、専用ユニット904に設定変更を実行した旨のコマンドを伝達する。このとき、メダル数制御CPU946は、かかる設定変更を実行した旨のコマンドを受信すると、投入メダル数を0にクリアする。また、メダル保持部に保持された遊技メダル数は「遊技メダル数クリアボタン」の操作時以外の契機ではクリアされないので、メダル数制御CPU946は、起動時コマンドに対する返信コマンドにおいて、現在の遊技メダル数をメインCPU500aに送信し、メインCPU500aは、受信した遊技メダル数によって自己のRAMが保持する遊技メダル数を更新する。こうすることで、メインCPU500aとメダル数制御CPU946間で、投入メダル数および遊技メダル数の同一性を担保することができる。また、メダル数制御CPU946においてバックアップ異常が生じた場合、メダル数制御CPU946に属するRAMが0にクリアされる。この場合でも、メインCPU500aは、起動時に、メインCPU500aのメインRAM500cで保持されている投入メダル数を、起動時コマンドを通じてメダル数制御CPU946に送信することで、投入メダルの同一性を担保することができる。 When a setting change occurs in the main control board 500, both the number of inserted medals and the number of game medals held in the RAM of the main CPU 500a and the RAM of the medal count control CPU 946 are cleared to 0. Specifically, when a setting change occurs, the main CPU 500a clears the number of inserted medals and the number of game medals held in its own RAM to 0. Then, the main CPU 500a transmits a command to the dedicated unit 904 via the medal count control CPU 946 to the effect that a setting change has been executed. At this time, when the medal count control CPU 946 receives a command to the effect that such a setting change has been executed, it clears the number of inserted medals to 0. In addition, since the number of game medals held in the medal holding section is not cleared by any trigger other than the operation of the "game medal count clear button", the medal count control CPU 946 transmits the current number of game medals to the main CPU 500a in a reply command to the start-up command, and the main CPU 500a updates the number of game medals held in its own RAM with the received number of game medals. This ensures that the number of inserted medals and the number of game medals are identical between the main CPU 500a and the medal count control CPU 946. Furthermore, if a backup abnormality occurs in the medal count control CPU 946, the RAM belonging to the medal count control CPU 946 is cleared to 0. Even in this case, the main CPU 500a can ensure the identity of the inserted medals by transmitting the number of inserted medals held in the main RAM 500c of the main CPU 500a to the medal count control CPU 946 via a startup command at startup.

(設定変更・設定確認)
上述したように、本実施形態では、設定値設定手段によって設定変更が行われる。設定変更を試みる場合、まず、メダルレス遊技機902の電源がOFFされる。そして、設定ドアキー438に所定の操作キーが挿入されてOFFの位置からONの位置へ回転された状態で電源スイッチ444を介して電源が投入されると設定変更モードに移行して、設定変更が可能な状態となり、設定変更中ステータスがONとなる。ここで、設定変更中ステータスは設定変更が実行されている間ONであり、それ以外はOFFとなる。なお、設定変更モードの開始時にメインRAM500cが異常であれば、メインRAM500cの変数を全てクリアし、メインRAM500cが正常でれば、メインRAM500cの設定変更領域のみクリアする。なお、メインCPU500aが設定変更中ステータスを専用ユニット904に伝達する際、メダル数制御CPU946は、設定変更中ステータスを取得できるが、かかる設定変更中ステータスに応じ、メダル数制御CPU946が管理する遊技メダル数をクリアすることはない。設定変更が可能な状態において設定変更スイッチが押下されると、その度に設定値が1ずつ加算され、1→2→3→4→5→6→1→…といったように1から6の数値を昇順に繰り返す。ここでは、6段階の設定値のうちのいずれかの設定値に更新され、スタートスイッチ418が操作されると、設定値が確定する。そして、設定ドアキー438を元の位置(OFFの位置)に戻すことで設定変更モードが終了して遊技が可能となる。なお、設定変更中ステータスは、設定変更モード終了後、1遊技終了時にOFFされる。
(Change settings/Check settings)
As described above, in this embodiment, the setting is changed by the setting value setting means. When attempting to change the setting, first, the power supply of the medalless gaming machine 902 is turned OFF. Then, when a predetermined operation key is inserted into the setting door key 438 and rotated from the OFF position to the ON position, the power supply is turned ON via the power switch 444, the setting is changed to a setting change mode, the setting is changed, and the setting change status is turned ON. Here, the setting change status is ON while the setting change is being executed, and is OFF otherwise. Note that, if the main RAM 500c is abnormal at the start of the setting change mode, all the variables of the main RAM 500c are cleared, and if the main RAM 500c is normal, only the setting change area of the main RAM 500c is cleared. Note that, when the main CPU 500a transmits the setting change status to the dedicated unit 904, the medal count control CPU 946 can acquire the setting change status, but the medal count managed by the medal count control CPU 946 is not cleared in response to the setting change status. When the setting change switch is pressed in a state in which the setting can be changed, the setting value is incremented by one each time, and the numbers are repeated in ascending order from 1 to 6, such as 1 → 2 → 3 → 4 → 5 → 6 → 1 → .... Here, the setting value is updated to one of six setting values, and when the start switch 418 is operated, the setting value is confirmed. Then, by returning the setting door key 438 to its original position (OFF position), the setting change mode ends and play becomes possible. The setting change in progress status is turned OFF when one game is completed after the setting change mode ends.

また、設定変更モードにおいて、メインCPU500aは、設定変更中ステータスを専用ユニット904に伝達すべく、設定変更中信号を生成している。設定変更中信号は、設定変更中ステータスのON/OFFを表し、図260に示した遊技機情報通知におけるホールコン・不正監視情報(遊技機情報)の遊技機不正1におけるビット0に設定されており、図265に示したように、300msec周期で専用ユニット904に通知される。 In addition, in the setting change mode, the main CPU 500a generates a setting change signal to transmit the setting change status to the dedicated unit 904. The setting change signal indicates the ON/OFF status of the setting change status, and is set to bit 0 of gaming machine fraud 1 of the hall control/fraud monitoring information (gaming machine information) in the gaming machine information notification shown in FIG. 260, and is notified to the dedicated unit 904 at 300 msec intervals as shown in FIG. 265.

ここで、図254(a)および図254(b)で示したようにCPUを独立して2つ(メインCPU500aおよびメダル数制御CPU946)設置した場合において、メインCPU500aで設定変更中ステータスを管理すると仮定する。そうすると、メインCPU500aは、設定ドアキー438に所定の操作キーが挿入されてOFFの位置からONの位置へ回転された状態で電源スイッチ444を介して電源が投入されると設定変更中ステータスがONであることを示すため、設定変更中信号をONにして、メダル数制御CPU946を通じ、遊技機情報通知を専用ユニット904に送信する。一方、メインCPU500aは、設定ドアキー438を元の位置(OFFの位置)に戻した後、さらに1遊技が終了した後に、設定変更中ステータスがOFFになったことを示すため、設定変更中信号をOFFにして、メダル数制御CPU946を通じ、遊技機情報通知を専用ユニット904に送信する。換言すれば、設定変更中信号は1遊技の終了時までON状態を維持しなければならない。かかる処理をメインCPU500aで実現しようとすると、設定変更中信号を設定する処理のみならず、1遊技の終了を待って設定変更中信号をOFFにする処理を実行するプログラムが必要となり、使用領域の特に制御領域が圧迫されるおそれがある。そこで、ここでは、設定変更中信号を設定する処理および1遊技の終了を待って設定変更中信号をOFFにする処理を、メインCPU500aではなく、メダル数制御CPU946で実現する。 Here, in the case where two independent CPUs (main CPU 500a and medal count control CPU 946) are installed as shown in FIG. 254(a) and FIG. 254(b), it is assumed that the setting change in progress status is managed by the main CPU 500a. In this case, when a predetermined operation key is inserted into the setting door key 438 and rotated from the OFF position to the ON position, the main CPU 500a turns on the power via the power switch 444 to indicate that the setting change in progress status is ON, and transmits a gaming machine information notification to the dedicated unit 904 via the medal count control CPU 946. On the other hand, after returning the setting door key 438 to its original position (OFF position), and after one game is completed, the main CPU 500a turns off the setting change in progress signal to indicate that the setting change in progress status has become OFF, and transmits a gaming machine information notification to the dedicated unit 904 via the medal count control CPU 946. In other words, the setting change signal must remain ON until the end of one game. If such processing were to be implemented by the main CPU 500a, not only would a program be required to set the setting change signal, but also to wait for one game to end and then turn OFF the setting change signal, which could put a strain on the usable area, especially the control area. Therefore, here, the processing to set the setting change signal and the processing to wait for one game to end and then turn OFF the setting change signal are implemented by the medal count control CPU 946, rather than the main CPU 500a.

図282は、設定変更中信号の更新処理を示したフローチャートである。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。所定の操作キーがONの状態で電源スイッチ444がONされることで、メインCPU500aは、設定値を変更する設定変更処理を実行する(S1)。そして、設定変更を含む初期化処理が完了すると、遊技者によるベットスイッチ416の操作に応じて、メインCPU500aは、電子化メダルをベットするベット処理を実行する(S2)。続いて、遊技者によるスタートスイッチ418の操作に応じて、メインCPU500aは、抽選処理を実行する(S3)。そして、メインCPU500aは、リール410a、410b、410cの回転を開始してリール回転処理を実行する(S4)。続いて、遊技者によるストップスイッチ420a、420b、420cの操作に応じて、操作されたストップスイッチ420a、420b、420cに対応するリール410a、410b、410cを停止制御するリール停止処理を実行する(S5)。リール410a、410b、410cが停止すると、メインCPU500aは、有効ラインA上に表示された図柄組み合わせが、いずれかの当選役に対応するか否か判定する判定処理を実行し(S6)、その判定結果に基づき、有効ラインA上に小役に対応する図柄組み合わせが表示されると、当該小役に対応するメダルの払出処理を実行する(S7)。このように、ステップS2からステップS7までの一連の処理を通じて1遊技が実行される。以後は、ステップS2からステップS7までを繰り返すこととなる。 Figure 282 is a flow chart showing the update process of the setting change signal. The numerical values of step S in this figure will be used only in the explanation of this figure. When the power switch 444 is turned ON while a specific operation key is ON, the main CPU 500a executes a setting change process to change the setting value (S1). Then, when the initialization process including the setting change is completed, the main CPU 500a executes a bet process to bet electronic medals in response to the player's operation of the bet switch 416 (S2). Next, the main CPU 500a executes a lottery process in response to the player's operation of the start switch 418 (S3). Then, the main CPU 500a starts the rotation of the reels 410a, 410b, 410c to execute a reel rotation process (S4). Next, in response to the operation of the stop switches 420a, 420b, and 420c by the player, a reel stop process is executed to stop the reels 410a, 410b, and 410c corresponding to the operated stop switches 420a, 420b, and 420c (S5). When the reels 410a, 410b, and 410c stop, the main CPU 500a executes a determination process to determine whether or not the symbol combination displayed on the pay line A corresponds to any winning combination (S6), and when a symbol combination corresponding to a minor combination is displayed on the pay line A based on the determination result, a medal payout process corresponding to the minor combination is executed (S7). In this way, one game is executed through a series of processes from step S2 to step S7. Thereafter, steps S2 to S7 are repeated.

また、メインCPU500aは、設定変更処理(S1)の開始時に、設定変更が開始したことを示す変更時コマンド(第1コマンド)をメダル数制御CPU946に送信する。メダル数制御CPU946は、かかる変更時コマンドを受信すると、図260に示したホールコン・不正監視情報の遊技機不正1におけるビット0を1に設定することで、設定変更中信号をONする(S11)。また、メインCPU500aは、払出処理(S7)において、メダルの払い出しが終了すると、払出終了時コマンド(第2コマンド)をメダル数制御CPU946に送信する。メダル数制御CPU946は、かかる払出終了時コマンドを受信すると、ホールコン・不正監視情報の遊技機不正1におけるビット0を0に設定することで、設定変更中信号をOFFする(S12)。このように、設定値の変更の開始時に設定変更中信号をONして専用ユニット904に送信し、設定値の変更を完了した後、1遊技の終了に応じ設定変更中信号をOFFして専用ユニット904に送信する機能部を設定変更中信号更新部と称する場合がある。なお、第1コマンドは、変更時コマンドに限らず、設定値の変更の開始時に、その旨が特定されさえすれば、任意のコマンドとすることができ、第2コマンドは、払出終了時コマンドに限らず、遊技が完了する度に、その旨が特定されさえすれば、任意のコマンドとすることができる。 In addition, at the start of the setting change process (S1), the main CPU 500a transmits a change command (first command) indicating that the setting change has started to the medal count control CPU 946. When the medal count control CPU 946 receives the change command, it sets bit 0 in the gaming machine fraud 1 of the hall control/fraud monitoring information shown in FIG. 260 to 1, thereby turning on the setting change signal (S11). In addition, when the payout of medals is completed in the payout process (S7), the main CPU 500a transmits a payout end command (second command) to the medal count control CPU 946. When the medal count control CPU 946 receives the payout end command, it sets bit 0 in the gaming machine fraud 1 of the hall control/fraud monitoring information to 0, thereby turning off the setting change signal (S12). In this way, a functional unit that turns on the setting change signal at the start of the setting value change and sends it to the dedicated unit 904, and then turns off the setting change signal at the end of one game and sends it to the dedicated unit 904 after the setting value change is completed is sometimes referred to as a setting change signal update unit. Note that the first command is not limited to a change command and can be any command as long as it is specified that the setting value change is started, and the second command is not limited to a payout end command and can be any command as long as it is specified that each time a game is completed.

このように、メインCPU500aの代わりに、メダル数制御CPU946において、設定変更中信号を設定する処理を実現することで、メインROM500bのプログラムの増加を抑制できる。したがって、使用領域の特に制御領域が圧迫されることがない。なお、メダル数制御CPU946のROMは、メモリ容量に余裕(2.5Kバイト)があるので、プログラムをメダル数制御CPU946で実現しても問題ない。 In this way, by implementing the process of setting the setting change signal in the medal count control CPU 946 instead of the main CPU 500a, the increase in programs in the main ROM 500b can be suppressed. Therefore, the area in use, especially the control area, is not put under pressure. Note that the ROM of the medal count control CPU 946 has ample memory capacity (2.5K bytes), so there is no problem in implementing the program in the medal count control CPU 946.

なお、ここでは、メインCPU500aが、毎遊技、払出処理(S7)において払出終了時コマンドをメダル数制御CPU946に送信し、メダル数制御CPU946が、かかる払出終了時コマンドに応じて設定変更中信号をOFFしている(S12)。かかる構成では、メダル数制御CPU946が繰り返し設定変更中信号をOFFすることとなる。しかし、設定変更中信号はOFFのまま変わらず、一旦、OFFとなった設定変更中信号は、300msec周期で、適切に専用ユニット904に通知される。したがって、メダル数制御CPU946が繰り返し設定変更中信号をOFFすることは問題ない。ここでは、払出終了時コマンドをメダル数制御CPU946に送信する場合に、メインCPU500aにおいて、設定変更処理が終了した最初の遊技であるという条件を判断する必要がなくなるので、設定変更処理が終了した最初の遊技という条件を判断するプログラムが不要となり、より、メインROM500bのプログラムの増加を抑制することができる。 Here, the main CPU 500a transmits a payout end command to the medal count control CPU 946 in the payout process (S7) for each game, and the medal count control CPU 946 turns off the setting change signal in response to the payout end command (S12). In this configuration, the medal count control CPU 946 repeatedly turns off the setting change signal. However, the setting change signal remains OFF, and the setting change signal that has once been turned OFF is appropriately notified to the dedicated unit 904 at 300 msec intervals. Therefore, there is no problem with the medal count control CPU 946 repeatedly turning off the setting change signal. Here, when transmitting a payout end command to the medal count control CPU 946, the main CPU 500a does not need to determine the condition that this is the first game in which the setting change process has been completed, so there is no need for a program that determines the condition that this is the first game in which the setting change process has been completed, and this makes it possible to further suppress the increase in programs in the main ROM 500b.

なお、ここでは、メインCPU500aが、払出処理(S7)において、メダル数制御CPU946にコマンドを送信する例を挙げて説明したが、1遊技が終了してさえすれば、リール停止処理(S5)や判定処理(S6)においてコマンドを送信してもよい。 Note that, here, an example has been described in which the main CPU 500a sends a command to the medal count control CPU 946 during the payout process (S7), but as long as one game has ended, the command may also be sent during the reel stop process (S5) or judgment process (S6).

また、メダルレス遊技機902では、設定変更の他に、設定されている設定値を設定確認によって確認することができる。設定確認を試みる場合、まず、設定ドアキー438に所定の操作キーが挿入されてOFFの位置からONの位置へ回転される。そうすると設定確認モードに移行して、設定値の確認が可能な状態となり、設定確認中ステータスがONされる。ここで、設定確認中ステータスは、設定確認が実行されている間ONであり、それ以外はOFFとなる。なお、設定確認中ステータス中に、ベットスイッチ416、精算スイッチ437、スタートスイッチ418の操作を無効としてもよい。そして、設定値が表示されるとともにステータスタイマの計時を開始する。ここで、ステータスタイマは、設定確認中ステータスを維持する時間を計時するタイマである。そして、操作キーを元の位置(OFFの位置)に戻すことで設定確認モードが終了して遊技が可能となる。なお、設定確認中ステータスは、設定ドアキー438がOFFであり、かつ、ステータスタイマが5秒以上経過するとOFFされる。 In addition to changing the settings, the medalless gaming machine 902 allows the user to check the set values by checking the settings. When checking the settings, a specific operation key is inserted into the setting door key 438 and rotated from the OFF position to the ON position. This causes the device to switch to a setting check mode, allowing the user to check the set values, and the setting check status is turned ON. The setting check status is ON while the setting check is being performed, and is OFF otherwise. During the setting check status, the operation of the bet switch 416, the settlement switch 437, and the start switch 418 may be disabled. The setting value is then displayed, and the status timer starts to count. The status timer is a timer that counts the time the setting check status is maintained. The setting check mode ends when the operation key is returned to its original position (OFF position), allowing the user to play. The setting check status is turned OFF when the setting door key 438 is OFF and the status timer has elapsed for 5 seconds or more.

また、設定確認モードにおいて、メインCPU500aは、設定確認中ステータスを専用ユニット904に伝達すべく、設定確認中信号を生成している。設定確認中信号は、設定確認中ステータスのON/OFFを表し、図260に示すように、遊技機情報通知におけるホールコン・不正監視情報(遊技機情報)の遊技機不正1におけるビット1に設定されており、図265に示したように、300msec周期で専用ユニット904に通知される。 In addition, in the setting confirmation mode, the main CPU 500a generates a setting confirmation signal to transmit the setting confirmation status to the dedicated unit 904. The setting confirmation signal indicates the ON/OFF status of the setting confirmation status, and as shown in FIG. 260, is set to bit 1 of gaming machine fraud 1 in the hall control/fraud monitoring information (gaming machine information) in the gaming machine information notification, and is notified to the dedicated unit 904 at 300 msec intervals, as shown in FIG. 265.

ここで、図254(a)および図254(b)で示したようにCPUを独立して2つ(メインCPU500aおよびメダル数制御CPU946)設置した場合において、メインCPU500aで設定確認中ステータスを管理すると、設定確認中信号を設定する処理のみならず、ステータスタイマで5秒を計時する処理を実行するプログラムが必要となり、使用領域の特に制御領域が圧迫されるおそれがある。そこで、設定変更モード同様、設定確認中信号を設定する処理およびステータスタイマで5秒を計時する処理を、メインCPU500aではなく、メダル数制御CPU946で実現する。 Here, in the case where two independent CPUs (main CPU 500a and medal count control CPU 946) are installed as shown in Figures 254(a) and 254(b), if the setting confirmation status is managed by the main CPU 500a, not only will a program be required to set the setting confirmation signal, but also to count five seconds with the status timer, which could put a strain on the usage area, especially the control area. Therefore, as with the setting change mode, the processing to set the setting confirmation signal and the processing to count five seconds with the status timer are realized by the medal count control CPU 946, not the main CPU 500a.

図283は、設定確認中信号の更新処理を示したフローチャートである。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。図283に示す一連の処理を通じて1遊技が実行されている途中、前回の遊技の払出処理(S1)が終了し、電子化メダルのベット待ち状態において、所定の操作キーがONされることで、メインCPU500aは、設定値を確認する設定確認処理を開始する(S2)。そして、設定確認が完了すると、所定の操作キーがOFFされて、メインCPU500aは、設定確認処理を終了する(S3)。こうして、メインCPU500aは、ベット処理(S4)が可能となる。 Figure 283 is a flow chart showing the update process of the setting confirmation signal. The numerical values of step S in this figure will be used only in the explanation of this figure. While one game is being played through the series of processes shown in Figure 283, the payout process of the previous game (S1) ends, and in the state of waiting for a bet of electronic medals, a specific operation key is turned ON, and the main CPU 500a starts the setting confirmation process to check the setting value (S2). Then, when the setting confirmation is completed, the specific operation key is turned OFF, and the main CPU 500a ends the setting confirmation process (S3). In this way, the main CPU 500a becomes able to perform the bet process (S4).

また、メインCPU500aは、設定確認処理の開始時(S2)に、設定確認の開始に応じて変更時コマンド(第3コマンド)をメダル数制御CPU946に送信する。メダル数制御CPU946は、かかる変更時コマンドを受信すると、図260に示したホールコン・不正監視情報の遊技機不正1におけるビット1を1に設定することで、設定確認中信号をONする(S11)。また、メインCPU500aは、設定確認処理の終了時(S3)に、変更時コマンド(第4コマンド)をメダル数制御CPU946に送信する。メダル数制御CPU946は、かかる変更時コマンドを受信すると、ステータスタイマに5秒を設定し、計時を開始する(S12)。そして、メダル数制御CPU946は、ステータスタイマが5秒経過したか否か判定し(S13)、5秒経過するまで(S13におけるNO)待機し、5秒経過すると(S13におけるYES)、ホールコン・不正監視情報の遊技機不正1におけるビット1を0に設定することで、設定確認中信号をOFFする(S14)。このように、設定値の確認の開始時に設定確認中信号をONして専用ユニット904に送信し、設定値の確認を完了した後、所定時間経過するのを待ち設定確認中信号をOFFして専用ユニット904に送信する機能部を設定確認中信号更新部と称する場合がある。なお、第3コマンドは、上記に限らず、設定値の確認の開始時に、その旨が特定されさえすれば、任意のコマンドとすることができ、第4コマンドは、上記に限らず、設定値の確認の完了時に、その旨が特定されさえすれば、任意のコマンドとすることができる。 In addition, the main CPU 500a transmits a change command (third command) to the medal count control CPU 946 in response to the start of the setting confirmation process at the start of the setting confirmation (S2). When the medal count control CPU 946 receives the change command, it sets bit 1 in the gaming machine fraud 1 of the hall control/fraud monitoring information shown in FIG. 260 to 1, thereby turning on the setting confirmation signal (S11). In addition, the main CPU 500a transmits a change command (fourth command) to the medal count control CPU 946 at the end of the setting confirmation process (S3). When the medal count control CPU 946 receives the change command, it sets the status timer to 5 seconds and starts timing (S12). Then, the medal count control CPU 946 judges whether the status timer has elapsed for 5 seconds (S13), waits until 5 seconds have elapsed (NO in S13), and when 5 seconds have elapsed (YES in S13), sets bit 1 in gaming machine fraud 1 of the hall control/fraud monitoring information to 0, thereby turning off the setting confirmation signal (S14). In this way, a functional unit that turns on the setting confirmation signal at the start of setting value confirmation and transmits it to the dedicated unit 904, waits for a predetermined time to elapse after completing the setting value confirmation, turns off the setting confirmation signal, and transmits it to the dedicated unit 904 may be called a setting confirmation signal update unit. Note that the third command is not limited to the above, and can be any command as long as it is specified at the start of setting value confirmation, and the fourth command is not limited to the above, and can be any command as long as it is specified at the completion of setting value confirmation.

このように、メインCPU500aの代わりに、メダル数制御CPU946において、設定確認中信号を設定する処理およびステータスタイマで5秒を計時する処理を実現することで、メインROM500bのプログラムの増加を抑制できるので、使用領域の特に制御領域が圧迫されることがない。 In this way, by implementing the process of setting the setting confirmation signal and the process of counting 5 seconds with the status timer in the medal count control CPU 946 instead of the main CPU 500a, the increase in programs in the main ROM 500b can be suppressed, so that the usage area, especially the control area, is not strained.

なお、上述したように、設定確認中信号は、設定確認モードに滞在していることを示しており、ゴト対策として少なくとも3秒間は出力しなければならない。しかし、設定確認中信号を含む遊技機情報通知は、300msec周期でしか専用ユニット904に送信されない。そうすると、例えば、メダル数制御CPU946が、遊技機情報通知が送信された直後に、変更時コマンドを受信した場合、設定確認中信号のONからOFFの間の時間が300msec程度削減されるおそれがある。ここでは、ステータスタイマでの待機時間を5秒とすることで、遊技機情報通知の送信タイミングに拘わらず、設定確認中信号のONからOFFの間の時間を3秒以上とすることができる。また、5秒の計時開始を、設定確認の開始を示すコマンドの受信時とせず、設定確認の終了を示すコマンドの受信時としているので、5秒に、さらに、設定確認の開始を示すコマンドから設定確認の終了を示すコマンドまでの間の時間が加算されるので、設定確認中信号のONからOFFの間の時間を確実に3秒以上とすることができる。 As described above, the setting confirmation signal indicates that the machine is in the setting confirmation mode, and must be output for at least three seconds as a countermeasure against cheating. However, the gaming machine information notification including the setting confirmation signal is only sent to the dedicated unit 904 at a cycle of 300 msec. In that case, for example, if the medal count control CPU 946 receives a change command immediately after the gaming machine information notification is sent, the time between ON and OFF of the setting confirmation signal may be reduced by about 300 msec. Here, by setting the waiting time in the status timer to 5 seconds, the time between ON and OFF of the setting confirmation signal can be made 3 seconds or more regardless of the timing of sending the gaming machine information notification. In addition, the start of the 5-second count is not when the command indicating the start of setting confirmation is received, but when the command indicating the end of setting confirmation is received, so that the time between the command indicating the start of setting confirmation and the command indicating the end of setting confirmation is added to the 5 seconds, and therefore the time between ON and OFF of the setting confirmation signal can be reliably made 3 seconds or more.

(リプレイ役の入賞)
また、ここでは、設定変更中信号や設定確認中信号をメインCPU500aではなく、メダル数制御CPU946において生成することで、メインCPU500aの処理負荷およびメインROM500bのメモリ容量を削減した。しかし、かかる場合に限らず、メインCPU500aからメダル数制御CPU946への様々な情報を最小限に留め、専用ユニット904への通知を要する情報はメダル数制御CPU946で生成してもよい。かかる構成によっても、メインCPU500aの負担を軽減することができる。例えば、メダルレス遊技機902は、300msec毎に、図260で示した、遊技機情報通知におけるホールコン・不正監視情報と、遊技情報とを専用ユニット904に送信しなければならず、その遊技情報として、スタートスイッチ418操作時や遊技終了時には、投入メダル数や払出メダル数を送信しなければならない。ここで、例えば、遊技結果がリプレイ役の入賞の場合、メインCPU500aは、再遊技フラグと払出枚数「0」という情報のみをメダル数制御CPU946に送信し、メダル数制御CPU946は、専用ユニット904に必要な各情報、例えば、スタートスイッチ418操作時には、投入メダル数として再遊技作動時の規定数(その遊技でベットした規定数)を生成し、遊技終了時には、払出メダル数として規定数を生成し、専用ユニット904に通知する。かかる構成により、メインCPU500aの処理負荷およびメインROM500bのメモリ容量を削減することができる。
(Replay winner)
In addition, the setting change signal and the setting confirmation signal are generated not by the main CPU 500a but by the medal count control CPU 946, thereby reducing the processing load of the main CPU 500a and the memory capacity of the main ROM 500b. However, this is not the only case, and various information from the main CPU 500a to the medal count control CPU 946 may be kept to a minimum, and information that needs to be notified to the dedicated unit 904 may be generated by the medal count control CPU 946. This configuration also reduces the burden on the main CPU 500a. For example, the medalless gaming machine 902 must transmit the hall control/fraud monitoring information and game information in the game machine information notification shown in FIG. 260 to the dedicated unit 904 every 300 msec, and as the game information, the number of inserted medals and the number of paid out medals must be transmitted when the start switch 418 is operated or when the game ends. Here, for example, when the game result is a winning replay combination, the main CPU 500a transmits only the information of the replay flag and the payout number "0" to the medal count control CPU 946, and the medal count control CPU 946 generates each piece of information necessary for the dedicated unit 904, for example, when the start switch 418 is operated, the specified number at the time of replay operation (the specified number bet in that game) as the number of inserted medals, and when the game ends, the specified number as the number of payout medals and notifies the dedicated unit 904. With this configuration, it is possible to reduce the processing load of the main CPU 500a and the memory capacity of the main ROM 500b.

また、このとき、メインCPU500aがメダル数制御CPU946へ送信する再遊技フラグを、1バイトのコマンドではなく、識別情報の所定のビット「再遊技状態」(1ビット)に割り当てることで、再遊技状態という1バイトのコマンドを準備する必要がなくなり、コマンドの集約化を図るとともに、処理負荷を軽減することが可能となる。 In addition, at this time, the replay flag that the main CPU 500a sends to the medal count control CPU 946 is assigned to a specific bit of the identification information, the "replay status" (1 bit), rather than to a 1-byte command, eliminating the need to prepare a 1-byte command for the replay status, consolidating commands and reducing the processing load.

(データ送信制御)
図254(a)および図254(b)で示したようにCPUを独立して2つ(メインCPU500aおよびメダル数制御CPU946)設置した場合、メインCPU500aとメダル数制御CPU946との間でシリアル通信が実行される。例えば、メインCPU500aは、メダル数制御CPU946にシリアル通信を通じて所定のコマンドを送信する。そして、メダル数制御CPU946は、専用ユニット904に、図257~図265に示したような遊技機情報通知を送信する。
(Data transmission control)
When two independent CPUs (main CPU 500a and medal count control CPU 946) are installed as shown in Figures 254(a) and 254(b), serial communication is executed between the main CPU 500a and medal count control CPU 946. For example, the main CPU 500a transmits a predetermined command to the medal count control CPU 946 through serial communication. Then, the medal count control CPU 946 transmits a gaming machine information notification to the dedicated unit 904 as shown in Figures 257 to 265.

図284は、メインCPU500aとメダル数制御CPU946との通信処理の比較例を示した説明図である。ここでは、メインCPU500aからメダル数制御CPU946にチェックサムを含む5バイト(固定長)のコマンドを送信する例を挙げて説明する。 Figure 284 is an explanatory diagram showing a comparative example of communication processing between the main CPU 500a and the medal count control CPU 946. Here, an example is given in which the main CPU 500a sends a 5-byte (fixed length) command including a checksum to the medal count control CPU 946.

図284に示すように、主制御基板500には、シリアル送信用の送信FIFO950が設けられている。送信FIFO950は、64バイトのメモリ容量を有し、最先で入力された1バイトのデータを保持し、送信可能タイミング(例えば、80μsec間隔)においてその1バイトのデータを最先に出力するバッファ機能を有する。また、メインCPU500aに対応するメインRAM500cには、4バイトのコマンド(データ)を保持する送信候補バッファ952が設けられている。 As shown in FIG. 284, the main control board 500 is provided with a transmission FIFO 950 for serial transmission. The transmission FIFO 950 has a memory capacity of 64 bytes, holds the first 1 byte of data input, and has a buffer function of outputting that 1 byte of data first at a transmittable timing (e.g., every 80 μsec). In addition, the main RAM 500c corresponding to the main CPU 500a is provided with a transmission candidate buffer 952 that holds 4 bytes of commands (data).

メインCPU500aでは、メダル数制御CPU946に送信するコマンド(チェックサムを除く4バイト)が生じると、まず、送信候補バッファ952に既にコマンドが保持されているか否か判定する。ここで、コマンドが保持されていれば、メインCPU500aは、送信候補バッファ952が空くのを待つ。そして、コマンドが保持されていなければ、図284(a)のように、メインCPU500aは、送信候補バッファ952に、クロスハッチングで示した4バイトのコマンドを保持させる。続いて、メインCPU500aは、送信候補バッファ952にコマンドが保持されたことに応じて、送信FIFO950に10バイトの空きがあるか否か判定する。ここで、10バイトの空きとは、送信FIFO950の64バイトのバッファに保持されているデータが54(64-10)以下であり、少なくとも10バイト分のデータを保持できる状態をいう。なお、ここで、10バイトの空きを判定しているのは、チェックサムを含む5バイトのコマンドを2つ連続して送信する場合があるからである。ここで、送信FIFO950に10バイトの空きがなければ、メインCPU500aは、送信FIFO950が10バイト分空くのを待つ。そして、送信FIFO950に10バイトの空きがあれば、図284(b)のように、メインCPU500aは、送信FIFO950にコマンドを保持させる。 When a command (4 bytes excluding the checksum) to be sent to the medal count control CPU 946 occurs, the main CPU 500a first determines whether the command is already held in the transmission candidate buffer 952. If a command is held here, the main CPU 500a waits for the transmission candidate buffer 952 to become free. If a command is not held, the main CPU 500a causes the transmission candidate buffer 952 to hold the 4-byte command shown by cross-hatching, as shown in FIG. 284(a). Next, the main CPU 500a determines whether there is 10 bytes of free space in the transmission FIFO 950 in response to the command being held in the transmission candidate buffer 952. Here, 10 bytes of free space refers to a state in which the data held in the 64-byte buffer of the transmission FIFO 950 is 54 (64-10) or less and at least 10 bytes of data can be held. The reason for determining whether there is 10 bytes of free space here is that there is a case in which two 5-byte commands including a checksum are sent consecutively. If there are not 10 bytes free in the transmission FIFO 950, the main CPU 500a waits for 10 bytes to become free in the transmission FIFO 950. If there are 10 bytes free in the transmission FIFO 950, the main CPU 500a causes the transmission FIFO 950 to hold the command, as shown in FIG. 284(b).

また、メインCPU500aは、図284(c)に示すように、送信FIFO950にコマンドを保持させる際に、送信候補バッファ952に保持された4バイトのコマンドのチェックサムを計算し、4バイトのコマンドに加えて、送信FIFO950に、黒の塗りつぶしで示したチェックサムも保持させる。こうして、送信FIFO950に5バイトのコマンドが設定される。そして、送信FIFO950は、図284(d)に示すように、80μsec間隔で5バイトのコマンドをメダル数制御CPU946に送信する。 In addition, as shown in FIG. 284(c), when the main CPU 500a causes the transmission FIFO 950 to store a command, it calculates a checksum of the 4-byte command stored in the transmission candidate buffer 952, and causes the transmission FIFO 950 to store the checksum, shown in black, in addition to the 4-byte command. In this way, a 5-byte command is set in the transmission FIFO 950. Then, as shown in FIG. 284(d), the transmission FIFO 950 transmits the 5-byte command to the medal count control CPU 946 at 80 μsec intervals.

図284では、コマンドが固定長の比較例を説明したが、コマンドが可変長の場合もある。例えば、メインCPU500aは、例えば、3バイト~80バイトの可変長のコマンドをメダル数制御CPU946に送信する。このように、コマンドが可変長であると、以下の問題が生じる。例えば、3バイトのコマンドであれば、4バイトの送信候補バッファ952や、64バイトの送信FIFO950に一度に保持させることができるが、80バイトのコマンドはいずれにも一度に保持させることができない。そこで、送信するコマンドを複数に区分し、少ないバイト数(例えば1バイト)単位でコマンドを送信する。また、ここでは、送信候補バッファ952の構成を削除し、チェックサムの生成処理を変更する。 In FIG. 284, a comparative example in which the command is fixed length was described, but there are also cases in which the command is variable length. For example, the main CPU 500a transmits a variable-length command of, for example, 3 bytes to 80 bytes to the medal count control CPU 946. In this way, when the command is variable length, the following problem occurs. For example, a 3-byte command can be held at once in the 4-byte transmission candidate buffer 952 or the 64-byte transmission FIFO 950, but an 80-byte command cannot be held at once in either. Therefore, the command to be sent is divided into multiple parts, and the command is transmitted in units of a small number of bytes (for example, 1 byte). Also, here, the configuration of the transmission candidate buffer 952 is deleted, and the checksum generation process is changed.

図285は、コマンドの1バイト送信の概念を示したフローチャートとコマンドを示した図である。かかる図におけるステップSの数値は、本図の説明においてのみ用いることとする。 Figure 285 shows a flowchart illustrating the concept of sending one byte of a command, and a diagram showing the command. The numerical values of step S in this figure will only be used in the explanation of this figure.

図285(a)に示すように、メインCPU500aは、まず、送信FIFO950の情報を取得する(S1)。具体的に、図285(b)の1行目のコマンド「PUSH AF」によって、AFレジスタの値がスタック領域に退避され、3行目のコマンド「IN A,(@S0ST__)」によって、Uレジスタの値をアドレスの上位1バイトとし、アドレス「@S0ST__」を下位1バイトとし、そのアドレスで示される乗算結果レジスタの値をAレジスタに読み出す。こうして、「@S0ST__」から送信FIFO950の情報が取得される。続いて、図285(a)に示すように、メインCPU500aは、送信FIFO950に1バイト以上の空きがあるか否か判定し(S2)、送信FIFO950に1バイト以上の空きが生じるまで(S2におけるNO)、ステップS1の処理を繰り返す。具体的に、図285(b)の4行目のコマンド「JBIT Z,6,A,MCD_SND01」によって、Aレジスタのビット6が0であれば、すなわち、送信FIFO950に1バイト以上の空きがなければ、2行目の指標「MCD_SND01」からの処理を繰り返し、ビット6が0でなければ、次の5行目のコマンドを実行する。 285(a), the main CPU 500a first obtains information from the transmission FIFO 950 (S1). Specifically, the command "PUSH AF" on the first line of FIG. 285(b) saves the value of the AF register to the stack area, and the command "IN A, (@S0ST___)" on the third line reads the value of the multiplication result register indicated by the address into the A register with the value of the U register as the upper byte of the address and the address "@S0ST___" as the lower byte. In this way, the information of the transmission FIFO 950 is obtained from "@S0ST___". Next, as shown in FIG. 285(a), the main CPU 500a determines whether or not there is at least one byte of free space in the transmission FIFO 950 (S2), and repeats the process of step S1 until there is at least one byte of free space in the transmission FIFO 950 (NO in S2). Specifically, the command "JBIT Z, 6, A, MCD_SND01" on the fourth line of Figure 285 (b) repeats the process from the index "MCD_SND01" on the second line if bit 6 of the A register is 0, i.e., if there is not at least one byte of free space in the transmit FIFO 950, and executes the command on the fifth line if bit 6 is not 0.

続いて、図285(a)に示すように、送信FIFO950に1バイト以上の空きがあれば(S2におけるYES)、メインCPU500aは、送信FIFO950に1バイト分のデータを送信する(S3)。具体的に、図285(b)の5行目のコマンド「POP AF」によってスタック領域に退避されていたデータがAFレジスタに復帰される。6行目のコマンド「OUT (@S0DT__),A」によって、Uレジスタの値をアドレスの上位1バイトとし、アドレス「@S0DT__」を下位1バイトとし、そのアドレスで示される送信FIFO950に復帰されたAレジスタの値を出力する。続いて、図285(a)に示すように、1バイト分のチェックサムを更新する(S4)。具体的に図285(b)の7行目のコマンド「ADD A,E」によって、Aレジスタの値に、チェックサムを保持するEレジスタの値を加算し、8行目のコマンド「LD E,A」によって、加算結果(Aレジスタの値)をEレジスタに戻し、9行目のコマンド「RET」によって、1段上のルーチンに戻る。 Next, as shown in FIG. 285(a), if there is at least one byte free in the transmission FIFO 950 (YES in S2), the main CPU 500a transmits one byte of data to the transmission FIFO 950 (S3). Specifically, the data saved in the stack area is restored to the AF register by the command "POP AF" on the fifth line of FIG. 285(b). The command "OUT (@S0DT___), A" on the sixth line sets the value of the U register as the upper byte of the address, sets the address "@S0DT___" as the lower byte, and outputs the value of the A register restored to the transmission FIFO 950 indicated by that address. Next, as shown in FIG. 285(a), the checksum for one byte is updated (S4). Specifically, the command "ADD A, E" on line 7 of Figure 285(b) adds the value in the E register, which holds the checksum, to the value in the A register, the command "LD E, A" on line 8 returns the result of the addition (the value in the A register) to the E register, and the command "RET" on line 9 returns to the routine one level above.

図286は、メインCPU500aとメダル数制御CPU946との通信処理を示した説明図である。ここでは、メインCPU500aからメダル数制御CPU946に可変長のコマンドのうち80バイトのコマンドを送信する例を挙げて説明する。 Figure 286 is an explanatory diagram showing the communication process between the main CPU 500a and the medal count control CPU 946. Here, an example is given in which the main CPU 500a sends an 80-byte command out of the variable-length commands to the medal count control CPU 946.

図286に示すように、メインCPU500aには、シリアル送信用の送信FIFO950が設けられている。送信FIFO950は、図284同様、64バイトのメモリ容量を有し、最先で入力された1バイトのデータを保持し、送信可能タイミング(例えば、80μsec間隔)においてその1バイトのデータを最先に出力するバッファ機能を有する。また、メインCPU500aに属する(対応する)メインRAM500cには、1バイトのチェックサムを保持するチェックサムバッファ954が設けられている。 As shown in FIG. 286, the main CPU 500a is provided with a transmission FIFO 950 for serial transmission. As in FIG. 284, the transmission FIFO 950 has a memory capacity of 64 bytes, holds the first byte of data input, and has a buffer function of outputting that byte of data first at a transmittable timing (e.g., at 80 μsec intervals). In addition, the main RAM 500c belonging to (corresponding to) the main CPU 500a is provided with a checksum buffer 954 that holds a 1-byte checksum.

メインCPU500aでは、メダル数制御CPU946に送信するコマンド(チェックサムを除く76バイト)が生じると、チェックサムバッファ954をクリアし(0に設定し)、送信FIFO950に1バイトの空きがあるか否か判定する。ここで、送信FIFO950に1バイトの空きがなければ、メインCPU500aは、送信FIFO950が1バイト分空くのを待つ。そして、送信FIFO950に1バイトの空きがあれば、図286(a)のように、メインCPU500aは、送信FIFO950にコマンドの先頭に位置する1バイトのデータを保持させる。 When the main CPU 500a receives a command (76 bytes excluding the checksum) to send to the medal count control CPU 946, it clears the checksum buffer 954 (sets it to 0) and determines whether or not there is one byte of free space in the transmission FIFO 950. If there is not one byte of free space in the transmission FIFO 950, the main CPU 500a waits for one byte to become free in the transmission FIFO 950. If there is one byte of free space in the transmission FIFO 950, then, as shown in FIG. 286(a), the main CPU 500a causes the transmission FIFO 950 to hold the one byte of data located at the beginning of the command.

また、メインCPU500aは、送信FIFO950に1バイトのデータを保持させる際に、チェックサムバッファ954のデータと、当該1バイトのデータとのチェックサムを計算し、黒の塗りつぶしで示したチェックサム(計算結果)をチェックサムバッファ954に上書きする。こうして、1バイトのデータを送信する毎にチェックサムが更新される。 When the main CPU 500a stores 1 byte of data in the transmission FIFO 950, it calculates a checksum between the data in the checksum buffer 954 and that 1 byte of data, and overwrites the checksum (calculation result) shown in black in the checksum buffer 954. In this way, the checksum is updated every time 1 byte of data is transmitted.

そして、図286(b)のように、メインCPU500aは、送信FIFO950に1バイトの空きがあれば、送信FIFO950に、コマンドを1バイトずつ保持させ、送信FIFO950は、80μsec間隔で1バイトずつコマンドをメダル数制御CPU946に送信する。このように、メインCPU500aは、送信FIFO950に1バイト以上の空きがあれば、1バイトずつ区分されたコマンドを、送信FIFO950に順次保持させる。ただし、上述したように送信するコマンドは、送信FIFO950の容量よりバイト数が大きいので、図286(c)のように、送信FIFO950において空きがない状態が生じ得る。この場合、メインCPU500aは、送信FIFO950が1バイト分空くのを待つこととなる。 As shown in FIG. 286(b), if there is one byte free in the transmission FIFO 950, the main CPU 500a causes the transmission FIFO 950 to hold the command one byte at a time, and the transmission FIFO 950 transmits the command one byte at a time at 80 μsec intervals to the medal count control CPU 946. In this way, if there is one or more byte free in the transmission FIFO 950, the main CPU 500a causes the transmission FIFO 950 to hold the command divided into one byte units in sequence. However, since the command to be sent has a larger number of bytes than the capacity of the transmission FIFO 950 as described above, a state in which there is no free space in the transmission FIFO 950 may occur, as shown in FIG. 286(c). In this case, the main CPU 500a waits for one byte to become free in the transmission FIFO 950.

メインCPU500aは、コマンドを全て送信FIFO950に保持させると、図286(d)のように、チェックサムバッファ954に保持されたチェックサムを送信FIFO950に保持させる。こうして、送信FIFO950に80バイトのコマンドが設定される。そして、送信FIFO950は、80μsec間隔で80バイトのコマンドをメダル数制御CPU946に送信する。 When the main CPU 500a has stored all the commands in the transmission FIFO 950, it stores the checksum stored in the checksum buffer 954 in the transmission FIFO 950, as shown in FIG. 286(d). In this way, an 80-byte command is set in the transmission FIFO 950. The transmission FIFO 950 then transmits the 80-byte command to the medal count control CPU 946 at 80 μsec intervals.

このように、コマンドを区分して送信FIFO950に保持させる構成により、コマンドの長さに拘わらず、仮に、コマンドの長さが送信FIFO950の容量より大きかったとしても、メインCPU500aは、メダル数制御CPU946に、適切にコマンドを送信することが可能となる。 In this way, by dividing commands and storing them in the transmission FIFO 950, the main CPU 500a can appropriately send commands to the medal count control CPU 946 regardless of the length of the command, even if the length of the command is greater than the capacity of the transmission FIFO 950.

また、コマンドのバイト数に拘わらず、例えば、コマンドが3バイトであっても、メインCPU500aが画一的にコマンドを区分して送信FIFO950に保持させる構成により、プログラムを単純化することができ、メインROM500bのプログラムの増加を抑制できる。したがって、使用領域の特に制御領域が圧迫されることがない。また、図284の構成と異なり、送信候補バッファ952を削減しているので、メインRAM500cの容量も確保することができる。 In addition, regardless of the number of bytes in the command, for example, even if the command is 3 bytes, the main CPU 500a uniformly classifies the command and stores it in the transmission FIFO 950, which simplifies the program and prevents the increase in programs in the main ROM 500b. Therefore, the area used, especially the control area, is not put under pressure. Also, unlike the configuration in FIG. 284, the transmission candidate buffer 952 has been eliminated, so the capacity of the main RAM 500c can be secured.

さらに、ここでは、メインCPU500aが、送信FIFO950に1バイトのデータを保持させる度に、画一的にチェックサムを更新しているので、コマンドの送信完了時点でチェックサムの計算が完了している。したがって、複数のデータのチェックサムを一度に計算する別途のプログラムが不要となり、使用領域の特に制御領域が圧迫されることがないのみならず、その処理時間を削減することが可能となる。 In addition, since the main CPU 500a uniformly updates the checksum every time it stores one byte of data in the transmission FIFO 950, the checksum calculation is completed when the command transmission is completed. Therefore, a separate program for calculating the checksums of multiple data at once is not required, and not only is there no pressure on the used area, especially the control area, but the processing time can also be reduced.

なお、ここでは、メインCPU500aが、コマンドを1バイトずつ区分して送信FIFO950に保持させる例を挙げて説明したが、かかる場合に限らず、例えば、2バイトずつ区分するといったように、コマンドの最大長さ未満の所定のバイト単位で区分することができる。ここで、区分する単位がコマンドの長さの公約数とならない場合、メインCPU500aは、区分した長さでコマンドを繰り返し送信し、最後の送信で余りのデータを送信する。例えば、コマンドの長さが80バイトであり、バイト単位が5バイトであれば、メインCPU500aは、コマンドを5バイトずつ区分して繰り返し(16回)送信FIFO950に保持させる。 Here, an example has been described in which the main CPU 500a divides the command into 1-byte chunks and stores them in the transmission FIFO 950, but this is not the only option. For example, the command can be divided into a specified byte unit less than the maximum length, such as into 2-byte chunks. If the division unit is not a common divisor of the command lengths, the main CPU 500a repeatedly transmits the command at the divided length, and transmits the remaining data in the final transmission. For example, if the command is 80 bytes long and the byte unit is 5 bytes, the main CPU 500a divides the command into 5-byte chunks and stores them repeatedly (16 times) in the transmission FIFO 950.

また、ここでは、メダルレス遊技機902において、メインCPU500a(第1制御部)からメダル数制御CPU946(第2制御部)にコマンドを送信する例を挙げて説明したが、かかる場合に限らず、例えば、メダルレス遊技機902内の他の基板同士や、管理遊技機におけるメインCPU300aから枠制御基板のCPUにコマンドを送信する場合等、第1制御部や第2制御部として、独立した様々なCPU同士のシリアル通信に適用することができる。 In addition, an example has been described here in which a command is sent from the main CPU 500a (first control unit) to the medal count control CPU 946 (second control unit) in the medalless gaming machine 902, but this is not limited to the above case. For example, the present invention can be applied to serial communication between various independent CPUs as the first control unit or second control unit, such as when sending a command between other boards in the medalless gaming machine 902, or from the main CPU 300a in a managed gaming machine to the CPU of a frame control board.

また、ここでは、送信FIFO950の容量が64バイトの例を挙げて説明したが、かかる場合に限らず、任意の容量を適用できる。本実施形態は、特に、送信FIFO950の容量よりコマンドが長い場合に効果が高い。また、ここでは、Z80系CPUをベースとするエルイーテック(LETech)社が販売するマイクロプロセッサのLEM50Aを採用しており、その送信FIFO950の容量が64バイトであるが、その他の例えばLC701Aであっても、送信FIFO950の容量が64バイトで動作するモードがあり、例えば、LEM50AのプログラムをLC701Aに流用する場合にそのモードが選定されることが考えられる。この場合であっても、本実施形態の効果が得られるのは言うまでもない。 In addition, although an example in which the capacity of the transmission FIFO 950 is 64 bytes has been described here, any capacity can be applied. This embodiment is particularly effective when the command is longer than the capacity of the transmission FIFO 950. In addition, the microprocessor LEM50A sold by LETech, which is based on a Z80-series CPU, is used here, and the capacity of the transmission FIFO 950 is 64 bytes, but even other microprocessors, such as the LC701A, have a mode in which the capacity of the transmission FIFO 950 operates at 64 bytes, and this mode can be selected, for example, when the program of the LEM50A is used for the LC701A. It goes without saying that the effects of this embodiment can be obtained even in this case.

なお、上述した実施形態では、主制御基板500にシリアル送信用の送信FIFO950を設け、メインCPU500aからメダル数制御CPU946への通信処理に送信FIFO950を用いる例を挙げて説明した。これと並行して、メダル数制御基板920においても、シリアル送信用の送信FIFO(図示せず)が設けられており、メダル数制御CPU946からメインCPU500aへの通信処理に送信FIFOが用いられている。かかるメダル数制御基板920に設けられたシリアル送信用の送信FIFOは、16バイトのメモリ容量を有し、最先で入力された1バイトのデータを保持し、送信可能タイミング(例えば、80μsec間隔)においてその1バイトのデータを最先に出力するバッファ機能を有する。 In the above embodiment, an example was described in which a transmission FIFO 950 for serial transmission is provided on the main control board 500, and the transmission FIFO 950 is used for communication processing from the main CPU 500a to the medal count control CPU 946. In parallel with this, a transmission FIFO for serial transmission (not shown) is also provided on the medal count control board 920, and the transmission FIFO is used for communication processing from the medal count control CPU 946 to the main CPU 500a. The transmission FIFO for serial transmission provided on the medal count control board 920 has a memory capacity of 16 bytes, holds the first 1 byte of data input, and has a buffer function that outputs that 1 byte of data first at a transmittable timing (for example, at 80 μsec intervals).

上述したように、メダル数制御CPU946は、メインCPU500aから所定のコマンド(待機中コマンド、遊技メダル投入時コマンド、スタート時コマンド、払出終了時コマンド、起動時コマンド)を受信すると、識別情報、投入可能枚数および遊技メダル数を示す伝達情報、チェックサムで構成される、例えば、5バイト長の返信コマンドをメインCPU500aに送信する。このような返信コマンドの送信の頻度が高くなると、メモリ容量が16バイトしかない送信FIFOで送信データを保持できない場合が生じ得る。 As described above, when the medal count control CPU 946 receives a specific command (standby command, medal insertion command, start command, payout completion command, startup command) from the main CPU 500a, it transmits a reply command, for example 5 bytes long, to the main CPU 500a, which is composed of identification information, transmission information indicating the number of medals that can be inserted and the number of medals used, and a checksum. If such reply commands are transmitted frequently, there may be cases where the transmission FIFO, which has a memory capacity of only 16 bytes, is unable to hold the transmitted data.

そこで、メダル数制御CPU946は、返信コマンドを送信する際に、送信間隔を空けて送信FIFOに送信する。例えば、メダル数制御CPU946は、前回、返信コマンドを送信してから、4msec以上経過してから(4msec待機して)、次の返信コマンドの送信を行う。このとき、メインCPU500aは、1.49msec周期で受信処理を実行し、FIFOトリガレベルを参照して、返信コマンドのバイト分(ここでは5バイト)全ての受信の完了を待って、その返信コマンドの解析処理を実行する。かかる構成により、メダル数制御基板920に設けられたシリアル送信用の送信FIFOに送信データが蓄積され、送信データを保持できない状態を回避することが可能となる。 Therefore, when sending a reply command, the medal count control CPU 946 sends it to the transmission FIFO with a transmission interval. For example, the medal count control CPU 946 waits for 4 msec or more after the previous reply command is sent (waits for 4 msec) before sending the next reply command. At this time, the main CPU 500a executes the reception process at a cycle of 1.49 msec, refers to the FIFO trigger level, waits for the completion of reception of all bytes (5 bytes in this case) of the reply command, and executes the analysis process of the reply command. With this configuration, it is possible to avoid a state in which transmission data is accumulated in the transmission FIFO for serial transmission provided in the medal count control board 920, and the transmission data cannot be held.

また、返信コマンドにおいて、貸出処理や計数処理を契機とする情報をビット単位で独立して管理することで、仮に、貸出処理と計数処理とが同時に実行されたとしても、その情報を1の返信コマンドに同時かつ独立して記述できるので、返信コマンドの送信頻度を低減することができる。 In addition, by managing the information triggered by the lending process and the counting process independently on a bit-by-bit basis in the reply command, even if the lending process and the counting process are executed simultaneously, the information can be written simultaneously and independently in a single reply command, thereby reducing the frequency with which reply commands are sent.

(メインCPU500aのコマンド1)
また、上記のように、ここでは、メインCPU500aがメダル数制御CPU946へ送信するコマンドを可変長としたとする。そうすると、コマンドを送信開始してから、送信完了するまでの時間が異なることとなる。ここで、仮に、電断が生じた場合、その電断処理でコマンドの送信が完了しない場合が生じ得る。コマンドには、送信が完了しなくとも、他の処理により補完できるものもあれば、送信完了を必須とするものもある。例えば、1遊技終了時コマンドは、コマンドの送信が完了せず、そのコマンドが伝達されなくとも、復電時(起動時)に再送されるため問題は生じない。したがって、コマンドの送信完了を待つことなく、電断処理を例えば即座に開始することができる。かかる構成により、不要なコマンドの送信を回避でき、割込禁止時間の増加を抑制することが可能となる。
(Command 1 of main CPU 500a)
Also, as described above, here, the command transmitted by the main CPU 500a to the medal count control CPU 946 is assumed to be variable length. In that case, the time from the start of command transmission to the completion of transmission will differ. Here, if a power outage occurs, it may happen that the transmission of the command is not completed in the power outage processing. Some commands can be complemented by other processing even if the transmission is not completed, and some require the completion of transmission. For example, a command at the end of one game is resent when the power is restored (when starting up) even if the transmission of the command is not completed and the command is not transmitted, so there is no problem. Therefore, the power outage processing can be started, for example, immediately, without waiting for the completion of command transmission. With such a configuration, it is possible to avoid the transmission of unnecessary commands and suppress the increase in the interruption prohibition time.

一方、払出終了時コマンドでは、払出枚数を示す伝達情報が送信される。払出枚数は、その送信を複数回行うべきではない。これは、遊技終了時に払出枚数を送信した後、さらに復電時(起動時)に再送されると、複数回払い出されたこととなり、払出枚数が多く(2倍)なってしまうからである。また、払出枚数は、遊技者の利益に直接関係する重要度の高い情報なので、確実にメダル数制御CPU946へ伝達する必要がある。そこで、メインCPU500aがメダル数制御CPU946へ送信する複数のコマンドのうち、払出終了時コマンドのように、重要度の高いコマンドについては、電断予告信号の検出から電断処理開始までの間に確実にメダル数制御CPU946へコマンドを送信する。すなわち、コマンドの送信が完了してから電断処理を開始する。なお、電断処理が開始されるまでの短時間にコマンドの送信を完了しなければならないので、重要度の高いコマンドのバイト数を短く(例えば10バイトと)する。かかる構成により、メインCPU500aは、重要度の高いコマンドを確実にメダル数制御CPU946へ送信し、遊技を適切に進行することが可能となる。 On the other hand, in the payout end command, transmission information indicating the number of payout coins is transmitted. The number of payout coins should not be transmitted multiple times. This is because if the number of payout coins is transmitted at the end of the game and then retransmitted when power is restored (started), it will be considered as having been paid out multiple times, and the number of payout coins will be increased (doubled). In addition, since the number of payout coins is information of high importance that directly relates to the player's profit, it must be transmitted reliably to the medal count control CPU 946. Therefore, among the multiple commands that the main CPU 500a transmits to the medal count control CPU 946, commands of high importance such as the payout end command are reliably transmitted to the medal count control CPU 946 between the detection of the power failure warning signal and the start of the power failure process. In other words, the power failure process is started after the transmission of the command is completed. Note that, since the transmission of the command must be completed in a short time before the power failure process is started, the number of bytes of the command of high importance is shortened (for example, to 10 bytes). This configuration allows the main CPU 500a to reliably send high-importance commands to the medal count control CPU 946, allowing the game to proceed appropriately.

(メインCPU500aのコマンド2)
また、上記のように、ここでは、メインCPU500aがメダル数制御CPU946へ送信するコマンドを可変長としたとする。そうすると、コマンドの送信順やその内容によっては、送信開始してから、送信完了するまでの時間が異なることとなる。例えば、比較的長い(例えば、60バイトの)1遊技終了時コマンドが送信された直後に電断予告信号が生じると、コマンドの送信が完了することなく、電断が生じるおそれがある。また、電源を投入すると、メインCPU500aは、1遊技終了時コマンド以上に長い(例えば、80バイトの)起動時コマンドをメダル数制御CPU946へ送信し、電断が生じる前の状態から処理を再開する。ここで、1遊技が終了すると、役比関連のデータが更新され、起動時コマンドの後に、1遊技終了時コマンドが送信される。そうすると、未だ、送信FIFO950に起動時コマンドが残っている可能性が高いので、さらに1遊技終了時コマンドの送信が待たされる。このような1遊技終了時コマンドが送信された直後に電断予告信号が生じると、さらに、コマンドの送信完了が遅延し、コマンドの送信完了を待たずに電断が生じるおそれがある。
(Command 2 of main CPU 500a)
Also, as described above, here, the command transmitted by the main CPU 500a to the medal count control CPU 946 is assumed to be variable length. Then, depending on the transmission order of the commands and their contents, the time from the start of transmission to the completion of transmission will differ. For example, if a power interruption notice signal occurs immediately after a relatively long (e.g., 60 bytes) one game end command is transmitted, there is a risk of a power interruption occurring without completing the transmission of the command. Also, when the power is turned on, the main CPU 500a transmits a startup command (e.g., 80 bytes) longer than the one game end command to the medal count control CPU 946, and resumes processing from the state before the power interruption occurred. Here, when one game ends, the role ratio-related data is updated, and the one game end command is transmitted after the startup command. Then, since there is a high possibility that the startup command still remains in the transmission FIFO 950, the transmission of the one game end command is further awaited. If a power outage warning signal occurs immediately after such a game end command is sent, the completion of command transmission may be further delayed, and there is a risk that a power outage may occur before the command has been sent completely.

ただし、上述したように、1遊技終了時コマンドがメダル数制御CPU946に伝達されなくとも、復電時(起動時)に再送されるため問題は生じない。なお、復電時(起動時)は、送信FIFO950にデータが保持されていないので、電断が生じない限り、起動時コマンドは適切にメダル数制御CPU946に伝達される。 However, as mentioned above, even if the end-of-game command is not transmitted to the medal count control CPU 946, no problem occurs because it is resent when power is restored (started up). Furthermore, when power is restored (started up), no data is held in the transmission FIFO 950, so unless a power interruption occurs, the start-up command is properly transmitted to the medal count control CPU 946.

そこで、1遊技終了時コマンドのように、コマンドに「役比関連の伝達情報」を含む場合、電断予告信号を検出したら、コマンドの送信完了を待つことなく、即座に電断処理を開始する。例えば、メインCPU500aは、図285(a)のステップS2において、送信FIFO950に1バイト以上の空きがある場合、ステップS3において、送信FIFO950に1バイトのデータを送信する前に、コマンドに「役比関連の伝達情報」が含まれ、かつ、電断予告信号が検出されたか否かを判定する。そして、電断予告信号が検出されると、メインCPU500aは、以降のステップS3、S4を行うことなく、すなわち、1バイトのデータを送信することなく(チェックサムを含む1遊技終了時コマンドの送信をキャンセルして)、当該処理を終了し、電断処理に移行する。かかる構成により、不要なコマンドの送信を回避でき、割込禁止時間の増加を抑制することが可能となる。 Therefore, when a command includes "role ratio-related transmission information" like the end of one game command, when the power cut warning signal is detected, the power cut processing is immediately started without waiting for the command to be sent. For example, in step S2 of FIG. 285(a), if there is at least one byte of free space in the transmission FIFO 950, the main CPU 500a determines in step S3 whether the command includes "role ratio-related transmission information" and whether the power cut warning signal has been detected before sending one byte of data to the transmission FIFO 950. Then, when the power cut warning signal is detected, the main CPU 500a ends the processing without performing the subsequent steps S3 and S4, i.e., without sending one byte of data (by canceling the sending of the end of one game command including the checksum), and moves to the power cut processing. With this configuration, it is possible to avoid sending unnecessary commands and suppress an increase in the interrupt prohibition time.

一方、コマンドに「役比関連の伝達情報」が含まれていない、または、電断予告信号が検知されていなければ、メインCPU500aは、ステップS3、S4を実行する。かかる構成により、重要度の低い1遊技終了時コマンドの送信中に電断予告信号が検出された場合、早急にコマンドの送信をキャンセルし、適切に電断処理を実行することが可能となる。 On the other hand, if the command does not include "combination information related to winning ratios" or if the power cut warning signal is not detected, the main CPU 500a executes steps S3 and S4. With this configuration, if a power cut warning signal is detected during the transmission of a one-game end command, which is of low importance, it becomes possible to immediately cancel the transmission of the command and execute the power cut processing appropriately.

また、仮に、電源を投入し、起動時コマンドが送信され、電断が生じる前の状態から処理が再開し、直後に、1遊技終了時コマンドが送信され、その直後に電断予告信号が検出された場合を仮定する。この場合、電源投入時には送信FIFO950にデータが保持されていないので、起動時コマンドのうち、前半64バイト分は直ぐに送信FIFO950に保持される。その後、1遊技終了時コマンドを送信する際には、起動時コマンドの後半部分が送信FIFO950にまだ残っている。したがって、コマンドが送信完了するまで長時間を要する。しかし、上記の電断予告信号が検出されたか否か判定する構成により、送信FIFO950に空きが生じたときには、1遊技終了時コマンドの送信がキャンセルされるので、適切に電断処理を実行することが可能となる。 Let us also assume that the power is turned on, the start-up command is sent, processing resumes from the state before the power failure, and immediately after that, the end-of-game command is sent, and the power failure warning signal is detected. In this case, since no data is stored in the transmission FIFO 950 when the power is turned on, the first 64 bytes of the start-up command are immediately stored in the transmission FIFO 950. Thereafter, when the end-of-game command is sent, the latter half of the start-up command still remains in the transmission FIFO 950. Therefore, it takes a long time for the command to be sent. However, due to the configuration for determining whether the power failure warning signal has been detected, when an empty space appears in the transmission FIFO 950, the transmission of the end-of-game command is canceled, making it possible to properly execute the power failure process.

なお、「役比関連の伝達情報」は、1遊技終了時コマンドのみならず、起動時コマンドにも含まれている。したがって、起動時コマンドを送信する際に電断予告信号が検出されると、それ以降のデータを送信することなく(チェックサムを含む起動時コマンドの送信をキャンセルして)、当該処理を終了し、電断処理に移行することとなる。 The "role ratio-related transmission information" is included not only in the end-of-game command, but also in the start-up command. Therefore, if a power cut warning signal is detected when sending the start-up command, the process will end without sending any further data (by canceling the sending of the start-up command, including the checksum), and the process will move on to power cut processing.

ただし、起動時コマンドのうち「起動時に必要な伝達情報」の送信は停止せず、送信が完了するまで電断処理を行わない。これは以下の理由による。すなわち、「起動時に必要な伝達情報」は、遊技機情報、チップID、メーカコード等を含み、電断予告信号の確認も複数箇所に分けて記載する必要があり、処理負荷およびメモリ容量の増大を招くおそれがある。また、上述したように、起動時には送信FIFO950にはデータが保持されていないので、「起動時に必要な伝達情報」までは、短時間で送信FIFO950に保持させることができ、かつ、送信完了までに長時間を要さないからである。 However, the transmission of the "transmission information required at startup" from the startup commands is not stopped, and the power cut process is not performed until the transmission is complete. This is for the following reason. The "transmission information required at startup" includes gaming machine information, chip ID, manufacturer code, etc., and the confirmation of the power cut warning signal must also be recorded in multiple places, which may result in an increase in processing load and memory capacity. Also, as described above, since no data is held in the transmission FIFO 950 at startup, the "transmission information required at startup" can be held in the transmission FIFO 950 in a short period of time, and it does not take a long time to complete the transmission.

ここでは、1遊技終了時コマンド、および、起動時コマンドについて、コマンドに「役比関連の伝達情報」が含まれており、かつ、電断予告信号が検知されていれば、それ以降のデータを送信することなく、即座に電断処理に移行する例を挙げて説明した。その他のコマンド(待機中コマンド、スタート時コマンド、払出終了時コマンド、変更時コマンド)については、図285(a)の処理をそのまま実行してもよいし、図285(a)のステップS1の前、すなわち送信開始時に、電断予告信号が検知されているか否か判定し、検出されていれば、ステップS1~S4を全て行うことなく、すなわち、それ以降のデータを送信することなく、即座に電断処理に移行するとしてもよい。かかる構成により、全てのコマンドについて適切に電断処理に移行することとなる。 Here, we have explained an example of the end of one game command and the start command, in which if the command contains "combination information related to winning ratios" and the power cut warning signal is detected, the process immediately transitions to power cut processing without transmitting any further data. For other commands (standby commands, start commands, end of payout commands, and change commands), the process in FIG. 285(a) may be executed as is, or before step S1 in FIG. 285(a), i.e., at the start of transmission, it may be determined whether or not the power cut warning signal has been detected, and if it has been detected, the process immediately transitions to power cut processing without performing all of steps S1 to S4, i.e., without transmitting any further data. With this configuration, the process transitions appropriately to power cut processing for all commands.

(メインCPUと試験機との通信)
メダルレス遊技機902においても、スロットマシン400同様、公安委員会の指定試験機関である保安通信協会(保通協)および、一般社団法人GLI Japanの型式試験が行われる。回胴式遊技機用試験機の接続仕様書(第七版)には、指定試験機関で使用する試験機を用いて適切に試験を行うために必要な仕様が記載されている。以下に、その概略を説明する。
(Communication between the main CPU and the tester)
The medal-less gaming machine 902, like the slot machine 400, is also subjected to type testing by the Security Communications Association (SCA), a testing organization designated by the Public Safety Commission, and the general incorporated association GLI Japan. The Connection Specifications for Testing Machines for Slot Machines (7th Edition) describes the specifications required for conducting appropriate testing using testing machines used by the designated testing organization. An outline of the specifications is given below.

図287は、メダルレス遊技機902の試射試験を説明するための説明図である。試射試験においては、図287に示すようにメダルレス遊技機902と試射試験機1000とを、各信号を統一するための第1インターフェースボード504および第2インターフェースボード506を介して接続する。 Figure 287 is an explanatory diagram for explaining a test firing test of the medal-less gaming machine 902. In the test firing test, as shown in Figure 287, the medal-less gaming machine 902 and the test firing test machine 1000 are connected via a first interface board 504 and a second interface board 506 to unify the various signals.

まず、試射試験機1000は、第1インターフェースボード504のコネクトCN3を介して、メダルレス遊技機902に所定の信号を出力する。ここで出力される所定の信号は、例えば、ベットスイッチ416、スタートスイッチ418、ストップスイッチ420等が操作された旨の擬似信号である。なお、実際には、これらのスイッチは操作されていないので、スイッチ毎に設けられたセンサが検出信号を出力することはないが、擬似的に操作されたものとして擬似信号が出力される。 First, the test firing machine 1000 outputs a predetermined signal to the medalless gaming machine 902 via connect CN3 of the first interface board 504. The predetermined signal output here is, for example, a pseudo signal indicating that the bet switch 416, start switch 418, stop switch 420, etc. have been operated. Note that, since these switches are not actually operated, the sensors provided for each switch do not output a detection signal, but a pseudo signal is output as if they have been operated in a pseudo manner.

また、かかる信号に対して、主制御基板500は、第1インターフェースボード504のコネクトCN1、CN2を介して、試射試験機1000に所定の信号を出力する。ここで出力される所定の信号は、演出用ランプ426の状態、各種センサの状態、ステッピングモータ452の位置等を示す信号である。また、AT演出状態等による補助演出を採用している場合、主制御基板500は、第2インターフェースボード506のコネクトCN4を介して、試射試験機1000に所定の信号を出力する。ここで出力される所定の信号は、最大の出玉率を得ることができる遊技方法に係る信号等である。ここでは、このような信号が、主として離散信号、すなわち、1(HIGH)または0(LOW)の2値で表される。 In response to such signals, the main control board 500 outputs a predetermined signal to the test firing test machine 1000 via the connects CN1 and CN2 of the first interface board 504. The predetermined signal output here is a signal indicating the state of the performance lamp 426, the state of the various sensors, the position of the stepping motor 452, etc. Furthermore, when auxiliary performance based on the AT performance state, etc. is adopted, the main control board 500 outputs a predetermined signal to the test firing test machine 1000 via the connect CN4 of the second interface board 506. The predetermined signal output here is a signal related to a game method that can obtain the maximum ball payout rate, etc. Here, such signals are mainly represented as discrete signals, i.e., two values of 1 (HIGH) or 0 (LOW).

そして、図287のような構成を前提に、スタートスイッチ418、ストップスイッチ420、ベットスイッチ416等の入力に対する遊技制御処理(当選種別抽選、リール制御、ベット等)の作動状況が正常であるか、また、メインクレジット表示部430、メイン払出表示部432、各種ランプが正常に表示されているか等が試験される。また、ベットスイッチ416、スタートスイッチ418、ストップスイッチ420、遊技制御処理の作動の各種タイミング、例えば、スタートスイッチ418が操作されてから、最初にストップスイッチ420が有効になり、それに対応する演出用ランプ426の点灯消灯状態を管理するランプ信号がONとなるタイミング等、信号がON/OFFする条件が満たされてから信号が変化しているか、または、そのタイミングが適切な時間範囲に含まれているかが試験される。 Assuming the configuration shown in FIG. 287, the operation status of the game control process (lottery for winning type, reel control, bet, etc.) in response to inputs of the start switch 418, stop switch 420, bet switch 416, etc. is tested to see if it is normal, and whether the main credit display unit 430, main payout display unit 432, and various lamps are displayed normally. In addition, various timings of operation of the bet switch 416, start switch 418, stop switch 420, and game control process are tested to see if the signal changes after the condition for turning the signal on/off is satisfied, such as the timing when the stop switch 420 is first enabled after the start switch 418 is operated and the lamp signal that manages the lighting/exiting state of the corresponding performance lamp 426 is turned on, or whether the timing is within an appropriate time range.

また、出玉性能に係る(出玉率の上下限を確認する)試験としては、例えば、(1)短時間出玉率(任意の400遊技の区間における出玉率が300%未満であること)、(2)中時間出玉率(任意の6000遊技の区間における出玉率が150%未満であること)、(3)長時間出玉率(任意の17500遊技の区間における出玉率が120%未満であり、55%を超えること)、(4)役物比率(スロットマシン400から払い出された遊技メダルのうち、役物(SB、CB、MB、RB、BB)の作動で獲得した出玉が70%以下であること)、(5)連続役物比率(遊技機から払い出された遊技メダルのうち、連続役物(RBもしくはBB)の作動で獲得した出玉が60%以下であること)等が挙げられる。また、その試験方法としては、(A)シミュレーション試験(毎遊技で獲得できる最大の枚数を獲得する試験)、(B)試射試験1(遊技者が遊技する遊技方法と同じ遊技方法で遊技する試験)、(C)試射試験2(出玉率が最低となる遊技方法で遊技)等が挙げられる。 In addition, tests related to ball-discharge performance (checking the upper and lower limits of ball-discharge rate) include, for example, (1) short-term ball-discharge rate (ball-discharge rate in any 400-play period is less than 300%), (2) medium-time ball-discharge rate (ball-discharge rate in any 6,000-play period is less than 150%), (3) long-term ball-discharge rate (ball-discharge rate in any 17,500-play period is less than 120% and greater than 55%), (4) device ratio (of the game medals paid out from the slot machine 400, 70% or less of the balls won through the operation of the device (SB, CB, MB, RB, BB)), and (5) consecutive device ratio (of the game medals paid out from the gaming machine, 60% or less of the balls won through the operation of the consecutive device (RB or BB)). The test methods include (A) a simulation test (a test to obtain the maximum number of coins that can be obtained in each play), (B) test firing test 1 (a test to play using the same playing method as the player plays), and (C) test firing test 2 (a test to play using the playing method that results in the lowest payout rate), etc.

ここでは、比較例として、スロットマシン400と試射試験機1000とを接続した場合を説明し、その後、メダルレス遊技機902と試射試験機1000とを接続した場合を説明する。 Here, as a comparative example, we will explain the case where a slot machine 400 is connected to a test firing test machine 1000, and then we will explain the case where a medalless gaming machine 902 is connected to a test firing test machine 1000.

図288は、スロットマシン400の動作を説明するための説明図である。例えば、スロットマシン400と試射試験機1000とを接続した場合において、試射試験機1000からスロットマシン400にベットスイッチ416、スタートスイッチ418、ストップスイッチ420の擬似信号が順次入力されると、かかる疑似信号に応じ、スロットマシン400のリール制御手段606は、リール410a、410b、410cを停止制御する。このような疑似信号により、スロットマシン400において、遊技が繰り返されるオート遊技が実行される。ここでは、仮に、オート遊技の1遊技において、有効ラインA上に払出枚数15枚の小役に対応する図柄組み合わせが表示された場合を説明する。 Figure 288 is an explanatory diagram for explaining the operation of the slot machine 400. For example, when the slot machine 400 and the test firing test machine 1000 are connected, and the test firing test machine 1000 sequentially inputs pseudo signals from the bet switch 416, the start switch 418, and the stop switch 420 to the slot machine 400, the reel control means 606 of the slot machine 400 controls the reels 410a, 410b, and 410c to stop in response to the pseudo signals. Such pseudo signals cause the slot machine 400 to execute an auto play in which the game is repeated. Here, a case will be explained where, in one game of the auto play, a symbol combination corresponding to a minor role with a payout of 15 coins is displayed on the pay line A.

リール制御手段606により、図288の時点aにおいて、全てのリール410a、410b、410cが停止すると、判定手段608は、当選役に対応する図柄組み合わせが有効ラインA上に表示されたか否か判定し、払出制御手段610は、当選役(ここでは小役)に対応する図柄組み合わせが有効ラインA上に表示されたことに基づいて、小役に対応する数(ここでは15枚)だけメダルを払い出す。ここでは、小役の払出枚数に応じて、1枚ずつ等間隔でメダルが払い出される。そして、メダルの払い出しが完了すると、払出制御手段610は、次の1遊技の開始、すなわち、ベット手段602によるベットを許可する。 When all reels 410a, 410b, 410c are stopped by the reel control means 606 at time a in FIG. 288, the determination means 608 determines whether or not a symbol combination corresponding to a winning role has been displayed on the pay line A, and the payout control means 610 pays out medals in the number corresponding to the minor role (here, 15 medals) based on the symbol combination corresponding to the winning role (here, a minor role) being displayed on the pay line A. Here, medals are paid out one at a time at equal intervals according to the number of medals paid out for the minor role. Then, when the payout of medals is completed, the payout control means 610 permits the start of the next game, i.e., a bet by the betting means 602.

このとき、スロットマシン400から試射試験機1000へは、メダルの15枚の払い出しに基づいて、デューティ50%の15回のパルスからなる払い出しカウント信号(第1信号)が送信され(外部に出力され)、178.8msec後の払い出しカウント信号の終了を示す時点bにおいて投入要求ランプ信号(第2信号)がONとなる(外部に出力される)。試射試験機1000は、かかる払い出しカウント信号によって、メダルの払出枚数が適切に行われたか判定し、また、投入要求ランプ信号のONにより、次の遊技が可能となったこと(次のオート遊技を開始できること)を把握する。ここで、第1信号は、払い出しカウント信号に限らず、電子化メダルの数をパルスの数として試射試験機1000に伝達できれば足りる。また、第2信号は、投入要求ランプ信号に限らず、第1信号の出力の完了、例えば、パルス数が電子化メダルの数分出力されたことを試射試験機1000に伝達できれば足りる。 At this time, a payout count signal (first signal) consisting of 15 pulses with a duty of 50% is transmitted (outputted to the outside) from the slot machine 400 to the test firing test machine 1000 based on the payout of 15 medals, and at time point b indicating the end of the payout count signal 178.8 msec later, a throw-in request lamp signal (second signal) turns ON (outputted to the outside). The test firing test machine 1000 judges whether the payout number of medals has been appropriately performed based on the payout count signal, and also grasps that the next game is possible (the next auto game can be started) based on the ON of the throw-in request lamp signal. Here, the first signal is not limited to a payout count signal, and it is sufficient if it can transmit the number of electronic medals to the test firing test machine 1000 as the number of pulses. Also, the second signal is not limited to a throw-in request lamp signal, and it is sufficient if it can transmit to the test firing test machine 1000 the completion of the output of the first signal, for example, that the number of pulses has been output equal to the number of electronic medals.

ところで、スロットマシン400とメダルレス遊技機902とは遊技の進行処理が実質的に等しい。したがって、試射試験機1000と送受信する信号も実質的に等しくなる。しかし、スロットマシン400とメダルレス遊技機902とで、その動作が異なる場合もある。例えば、スロットマシン400では実際のメダルを払い出すため、その払い出しに時間を要するが、メダルレス遊技機902ではメダルの介在なしに遊技が進行するので、払出制御手段610はメダルの払い出しを行わない。したがって、図288で示したような払出制御手段610による実際のメダルの払い出しも生じない。スロットマシン400においては、払出制御手段610が、メダルの払い出し中に次遊技の開始を制限し、払い出しが完了してから次遊技の開始を許可していた。しかし、メダルレス遊技機902では、実際のメダルの払い出しを要さず、電子化メダルの払い出しは瞬時に終了する。そうすると、全てのリール410a、410b、410cが停止しさえすれば、その直後に次遊技も開始可能となる。 The slot machine 400 and the medalless gaming machine 902 have substantially the same game progress processing. Therefore, the signals transmitted to and received from the test firing test machine 1000 are also substantially the same. However, the slot machine 400 and the medalless gaming machine 902 may have different operations. For example, the slot machine 400 pays out actual medals, which takes time to do so, but the medalless gaming machine 902 progresses the game without the intervention of medals, so the payout control means 610 does not pay out medals. Therefore, there is no actual payout of medals by the payout control means 610 as shown in FIG. 288. In the slot machine 400, the payout control means 610 restricts the start of the next game during the payout of medals, and allows the start of the next game after the payout is completed. However, in the medalless gaming machine 902, there is no need to pay out actual medals, and the payout of electronic medals ends instantly. In this way, as long as all reels 410a, 410b, and 410c have stopped, the next game can start immediately afterwards.

しかし、上記のように、スロットマシン400とメダルレス遊技機902とは遊技の進行処理が実質的に等しいことから、試射試験機1000と送受信する信号は実質的に等しくしている。そうすると、メダルレス遊技機902において、実際のメダルの払い出しを伴わない場合においても払い出しカウント信号や投入要求ランプ信号を出力する必要がある。したがって、メダルレス遊技機902においても、試射試験機1000へ、メダルの15枚の払い出しに基づいて、15回のパルスからなる払い出しカウント信号を送信し、178.8msec後に、払い出しの終了に応じて投入要求ランプ信号をONとし、投入要求ランプ信号に同期させて、メダルレス遊技機902における次遊技の開始を可能とすることが考えられる。 However, as described above, since the slot machine 400 and the medalless gaming machine 902 have substantially the same game progression process, the signals transmitted to and received from the test firing test machine 1000 are substantially the same. In this case, the medalless gaming machine 902 needs to output a payout count signal and an insertion request lamp signal even when no actual medals are paid out. Therefore, the medalless gaming machine 902 can also transmit a payout count signal consisting of 15 pulses to the test firing test machine 1000 based on the payout of 15 medals, and after 178.8 msec, turn on the insertion request lamp signal in response to the end of the payout, and synchronize with the insertion request lamp signal to enable the start of the next game in the medalless gaming machine 902.

しかしながら、メダルレス遊技機902では、全てのリール410a、410b、410cの停止後、電子化メダルの払い出しが瞬時に完了するので、遊技者は、電子化メダルの払い出しが完了した後、払い出しカウント信号の出力が完了するのを待って次遊技を開始することとなる。そうすると、遊技者が、次遊技の開始が制限されている間にベットスイッチ416を操作してしまい、操作が有効に受け付けられず、操作性の向上が図れない状況が生じうる。また、電子化メダルの払い出しが終了し、次遊技を開始できるのに、払い出しカウント信号のために待ち時間を設けるのは遊技の進行を徒に遅らせることにもなる。 However, in the medal-less gaming machine 902, after all reels 410a, 410b, and 410c have stopped, the payout of electronic medals is completed instantly, so the player must wait for the payout count signal to be completed after the payout of electronic medals is completed before starting the next game. This can lead to a situation where the player operates the bet switch 416 while the start of the next game is restricted, and the operation is not accepted effectively, preventing improvement in operability. Furthermore, when the payout of electronic medals has been completed and the next game can be started, providing a waiting time for the payout count signal means that the progress of the game is needlessly delayed.

そこで、メダルレス遊技機902本体の遊技の進行と試射試験機1000への信号送信とを独立して動作させ、遊技を適切に進行する。 Therefore, the game progress of the medalless gaming machine 902 itself and the signal transmission to the test firing test machine 1000 are operated independently to ensure that the game progresses appropriately.

図289は、メダルレス遊技機902の動作を説明するための説明図である。例えば、メダルレス遊技機902と試射試験機1000とを接続した場合において、試射試験機1000からメダルレス遊技機902にベットスイッチ416、スタートスイッチ418、ストップスイッチ420の擬似信号が順次入力されると、かかる疑似信号に応じ、リール制御手段606は、リール410a、410b、410cを停止制御する。このような疑似信号により、スロットマシン400において、遊技が繰り返されるオート遊技が実行される。ここでも、図288同様、有効ラインA上に払出枚数15枚の小役に対応する図柄組み合わせが表示されたとする。 Figure 289 is an explanatory diagram for explaining the operation of the medalless gaming machine 902. For example, when the medalless gaming machine 902 is connected to the test firing test machine 1000, and the pseudo signals of the bet switch 416, start switch 418, and stop switch 420 are input from the test firing test machine 1000 to the medalless gaming machine 902 in sequence, the reel control means 606 controls the reels 410a, 410b, and 410c to stop in response to the pseudo signals. Such pseudo signals cause the slot machine 400 to execute an auto play in which the game is repeated. Here, as in Figure 288, it is assumed that a symbol combination corresponding to a minor role with a payout of 15 coins is displayed on the pay line A.

リール制御手段606により、時点aにおいて、全てのリール410a、410b、410cが停止すると、判定手段608は、当選役に対応する図柄組み合わせが有効ラインA上に表示されたか否か判定し、払出制御手段610は、当選役(ここでは小役)に対応する図柄組み合わせが有効ラインA上に表示されたことに基づいて、小役に対応する数(ここでは15枚)だけ電子化メダルを一度に払い出す。このように、メダルの払い出しが瞬時に完了すると、払出制御手段610は、次の1遊技の開始を許可する。こうすることで、遊技者は、電子化メダルの払い出し直後に、次遊技を開始することが可能となる。 When all reels 410a, 410b, 410c are stopped by the reel control means 606 at time a, the determination means 608 determines whether or not a symbol combination corresponding to a winning role has been displayed on the pay line A, and the payout control means 610 pays out the number of electronic medals corresponding to the small role (here, 15 medals) at once based on the symbol combination corresponding to the winning role (here, a small role) being displayed on the pay line A. In this way, when the payout of medals is instantly completed, the payout control means 610 allows the start of the next game. This allows the player to start the next game immediately after the electronic medals are paid out.

このとき、メダルレス遊技機902から試射試験機1000へは、メダルの15枚の払い出しに基づき、電子化メダルの払い出しとは独立して、15回のパルスからなる払い出しカウント信号(第1信号)が送信され(外部に出力され)、178.8msec後の払い出しカウント信号の終了を示す時点bにおいて投入要求ランプ信号(第2信号)がONとなる(外部に出力される)。試射試験機1000は、かかる払い出しカウント信号によって、メダルの払出が適切に行われたか判定し、また、投入要求ランプ信号のONにより、次の遊技が可能となったことを把握する。 At this time, a payout count signal (first signal) consisting of 15 pulses is transmitted (output to the outside) from the medalless gaming machine 902 to the test firing test machine 1000 based on the payout of 15 medals, independent of the payout of the electronic medals, and a throw-in request lamp signal (second signal) turns ON (output to the outside) at time b indicating the end of the payout count signal 178.8 msec later. The test firing test machine 1000 uses this payout count signal to determine whether the medals have been properly paid out, and also knows that the next game is possible due to the throw-in request lamp signal turning ON.

ここでは、メダルレス遊技機902本体の遊技の進行と試射試験機1000への信号送信とを独立して動作させ、電子化メダルの払い出し完了直後に次遊技を開始可能とすることで、電子化メダルの払い出しが完了した直後にベットスイッチ416の受け付けが可能となるので、遊技者は、ベットスイッチ416の受け付けが制限されることもなく、操作性の向上を図ることができる。また、電子化メダルの払い出しが終了して直ぐに、次遊技を開始できるので、適切に遊技を進行することが可能となる。 Here, the progress of the game on the medalless gaming machine 902 itself and the transmission of signals to the test firing machine 1000 are operated independently, and the next game can be started immediately after the payout of the electronic medals is completed. This allows the bet switch 416 to be accepted immediately after the payout of the electronic medals is completed, so the player is not restricted in accepting the bet switch 416, improving operability. In addition, since the next game can be started immediately after the payout of the electronic medals is completed, it is possible to progress the game appropriately.

以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる実施形態に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。 Although the preferred embodiment of the present invention has been described above with reference to the attached drawings, it goes without saying that the present invention is not limited to such an embodiment. It is clear that a person skilled in the art can come up with various modified or revised examples within the scope of the claims, and it is understood that these also naturally fall within the technical scope of the present invention.

例えば、メダルレス遊技機902から専用ユニット904に送信するセキュリティ関連の信号は、3秒以上継続して出力することとなっている。ここで、メダルレス遊技機902がセキュリティ関連の信号の出力中に電源断した場合、メダルレス遊技機902は、電源復帰後に、セキュリティ関連の信号を再度出力してもよいし、出力しなくてもよい。仮に、セキュリティ関連の信号を再度出力する場合、メダルレス遊技機902は、電源復帰後に、改めてセキュリティ関連の信号を3秒以上継続して出力するとしてもよい。 For example, the security-related signal transmitted from the medal-less gaming machine 902 to the dedicated unit 904 is output continuously for three seconds or more. Here, if the medal-less gaming machine 902 is powered off while outputting a security-related signal, the medal-less gaming machine 902 may or may not output the security-related signal again after power is restored. If the medal-less gaming machine 902 outputs the security-related signal again, it may output the security-related signal again for three seconds or more continuously after power is restored.

また、上述した実施形態においては、メインCPU500aが前面上扉404または前面下扉406が開放されているときに「1」が立つドア開放エラー検出フラグを取得し、ドア開放エラーを判断する例を挙げて説明した。メダルレス遊技機では、メインCPU500aのみならず、メダル数制御CPU946もドア開放エラーを管理する。具体的に、前面上扉404または前面下扉406が開放されているときに出力されるドア開放信号を、メインCPU500aおよびメダル数制御CPU946の両方に電気信号(ハードウェア)として入力させ、メインCPU500aは、サブCPU502aを通じてドア開放エラーを報知し、これと並行して、メダル数制御CPU946は、専用ユニット904やホールコンピュータ906を通じてドア開放エラーを報知する。かかる構成により、メインCPU500aおよびメダル数制御CPU946のうち一方のCPUに不具合が生じたとしても、他方のCPUが正常である限り、ドア開放エラーを報知できるので、セキュリティ性を担保することが可能となる。 In the above embodiment, the main CPU 500a obtains a door open error detection flag that is set to "1" when the front upper door 404 or the front lower door 406 is open, and determines whether a door open error has occurred. In a medal-less gaming machine, not only the main CPU 500a but also the medal count control CPU 946 manages the door open error. Specifically, the door open signal output when the front upper door 404 or the front lower door 406 is open is input as an electrical signal (hardware) to both the main CPU 500a and the medal count control CPU 946, and the main CPU 500a notifies the door open error through the sub-CPU 502a, and in parallel with this, the medal count control CPU 946 notifies the door open error through the dedicated unit 904 or the hall computer 906. With this configuration, even if a malfunction occurs in one of the main CPU 500a and the medal count control CPU 946, as long as the other CPU is normal, the door open error can be notified, so security can be ensured.

また、上述した実施形態では、主制御基板500と副制御基板502とメダル数制御基板920が、遊技を進行するための機能部を分担するように配したが、主制御基板500の一部の機能部を副制御基板502やメダル数制御基板920に配しても、副制御基板502の一部の機能部を主制御基板500やメダル数制御基板920に配してもよく、メダル数制御基板920の一部の機能部を主制御基板500や副制御基板502に配してもよく、また、全ての機能部を1の制御基板に纏めて配することもできる。 In the above-described embodiment, the main control board 500, the sub-control board 502, and the medal count control board 920 are arranged to share the functional parts for progressing through the game, but some of the functional parts of the main control board 500 may be arranged on the sub-control board 502 or the medal count control board 920, some of the functional parts of the sub-control board 502 may be arranged on the main control board 500 or the medal count control board 920, some of the functional parts of the medal count control board 920 may be arranged on the main control board 500 or the sub-control board 502, or all of the functional parts may be arranged together on a single control board.

また、上述した主制御基板300、500、副制御基板330、502、メダル数制御基板920が行う各処理は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいはサブルーチンによる処理を含んでもよい。 Furthermore, each process performed by the main control boards 300, 500, sub-control boards 330, 502, and medal count control board 920 described above does not necessarily have to be performed in chronological order according to the order described in the flowchart, and may include parallel or subroutine processing.

100 遊技機
300、500 主制御基板
300a、500a メインCPU
300b、500b メインROM
300c、500c メインRAM
330、502 副制御基板
330a、502a サブCPU
330b、502b サブROM
330c、502c、 サブRAM
400 スロットマシン
900 遊技システム
902 メダルレス遊技機
904 専用ユニット
920 メダル数制御基板
946 メダル数制御CPU
100 Gaming machine 300, 500 Main control board 300a, 500a Main CPU
300b, 500b Main ROM
300c, 500c Main RAM
330, 502 Sub-control board 330a, 502a Sub-CPU
330b, 502b Sub ROM
330c, 502c, Sub RAM
400 Slot machine 900 Gaming system 902 Medalless gaming machine 904 Dedicated unit 920 Medal count control board 946 Medal count control CPU

Claims (1)

外部に所定の信号を出力可能な遊技機であって、
遊技に使用するための遊技価値をベットするベット手段と、
遊技価値をベットした後、スタートスイッチの操作に基づき、複数種類の図柄がそれぞれ配列された複数のリールを回転制御し、回転している前記リールに対応するストップスイッチの操作に応じ、操作された前記ストップスイッチに対応する前記リールをそれぞれ停止制御するリール制御手段と、
前記リールの停止態様に対応する遊技価値を払い出す払出制御手段と、
を備え、
前記払出制御手段は、
前記リールの停止に応じて前記遊技価値を一度に払い出し、その後、前記ベット手段による次遊技のベットを許可し、
払い出される前記遊技価値の数に対応するパルスで構成された第1信号を前記外部に出力し、その後、第1信号の出力が完了すると、次の遊技が可能となったことを示す第2信号を前記外部に出力し、
前記次遊技のベットを許可するタイミングは、前記第1信号の出力が完了するタイミングより早い遊技機。
A gaming machine capable of outputting a predetermined signal to the outside,
A betting means for betting a gaming value to be used in a game;
a reel control means for controlling the rotation of a plurality of reels on which a plurality of types of symbols are respectively arranged based on the operation of a start switch after a gaming value is bet, and for controlling the stop of each of the reels corresponding to the operated stop switch in response to the operation of a stop switch corresponding to the rotating reel;
a payout control means for paying out a game value corresponding to a stop state of the reels;
Equipped with
The dispensing control means
pay out the game value at once in response to the stopping of the reels, and then permit a bet for the next game by the betting means;
outputting, to the outside, a first signal constituted by pulses corresponding to the number of game values to be paid out, and then, when the output of the first signal is completed, outputting, to the outside, a second signal indicating that a next game is possible;
The timing at which the bet for the next game is permitted is earlier than the timing at which the output of the first signal is completed .
JP2021153823A 2021-09-22 2021-09-22 Gaming Machines Active JP7495912B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021153823A JP7495912B2 (en) 2021-09-22 2021-09-22 Gaming Machines

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021153823A JP7495912B2 (en) 2021-09-22 2021-09-22 Gaming Machines

Publications (2)

Publication Number Publication Date
JP2023045428A JP2023045428A (en) 2023-04-03
JP7495912B2 true JP7495912B2 (en) 2024-06-05

Family

ID=85777359

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021153823A Active JP7495912B2 (en) 2021-09-22 2021-09-22 Gaming Machines

Country Status (1)

Country Link
JP (1) JP7495912B2 (en)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003117075A (en) 2001-10-12 2003-04-22 Sankyo Kk Slot machine
JP2006095064A (en) 2004-09-29 2006-04-13 Aruze Corp Game machine
JP2006095072A (en) 2004-09-29 2006-04-13 Aruze Corp Game machine and game test system
JP2016036525A (en) 2014-08-07 2016-03-22 株式会社ニューギン Game machine
JP2016187428A (en) 2015-03-30 2016-11-04 株式会社大都技研 Game machine
JP2019111113A (en) 2017-12-22 2019-07-11 山佐株式会社 Game machine
JP2020022637A (en) 2018-08-07 2020-02-13 株式会社三共 Slot machine
JP2021094173A (en) 2019-12-16 2021-06-24 サミー株式会社 Game machine
JP2022090105A (en) 2018-03-13 2022-06-16 サミー株式会社 Game machine

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003117075A (en) 2001-10-12 2003-04-22 Sankyo Kk Slot machine
JP2006095064A (en) 2004-09-29 2006-04-13 Aruze Corp Game machine
JP2006095072A (en) 2004-09-29 2006-04-13 Aruze Corp Game machine and game test system
JP2016036525A (en) 2014-08-07 2016-03-22 株式会社ニューギン Game machine
JP2016187428A (en) 2015-03-30 2016-11-04 株式会社大都技研 Game machine
JP2019111113A (en) 2017-12-22 2019-07-11 山佐株式会社 Game machine
JP2022090105A (en) 2018-03-13 2022-06-16 サミー株式会社 Game machine
JP2020022637A (en) 2018-08-07 2020-02-13 株式会社三共 Slot machine
JP2021094173A (en) 2019-12-16 2021-06-24 サミー株式会社 Game machine

Also Published As

Publication number Publication date
JP2023045428A (en) 2023-04-03

Similar Documents

Publication Publication Date Title
JP7407767B2 (en) gaming machine
JP7430163B2 (en) gaming machine
JP7495912B2 (en) Gaming Machines
JP7465247B2 (en) Gaming Machines
JP7413331B2 (en) gaming machine
JP7455087B2 (en) gaming machine
JP7397022B2 (en) gaming machine
JP7344247B2 (en) gaming machine
JP7344925B2 (en) gaming machine
JP7456974B2 (en) gaming machine
JP7410902B2 (en) gaming machine
JP7344244B2 (en) gaming machine
JP7317890B2 (en) game machine
JP7407761B2 (en) gaming machine
JP2022169281A (en) game machine
JP7479913B2 (en) Gaming Machines
JP2023045425A (en) game machine
JP2023045429A (en) game machine
JP2022169283A (en) game machine
JP2022169282A (en) game machine
JP7407653B2 (en) gaming machine
JP7428579B2 (en) gaming machine
JP2022163765A (en) game machine
JP2022163771A (en) game machine
JP2022163768A (en) game machine

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221115

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240123

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240307

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: 20240524

R150 Certificate of patent or registration of utility model

Ref document number: 7495912

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150