Difference between revisions of "FF7/Field/Script/Opcodes/17 IFSWL"

From Final Fantasy Inside
< FF7‎ | Field‎ | Script‎ | Opcodes
Jump to navigation Jump to search
my_wiki>Synergy Blades
 
m (6 revisions imported)
 
(5 intermediate revisions by 2 users not shown)
Line 6: Line 6:
 
{| border="1" cellspacing="1" cellpadding="3" style="border: 1px solid black; border-collapse: collapse;"
 
{| border="1" cellspacing="1" cellpadding="3" style="border: 1px solid black; border-collapse: collapse;"
 
! width="40" | 0x17
 
! width="40" | 0x17
! width="40" | ''B''
+
! width="50" | ''B1 / B2''
! width="40" | ''A''
+
! width="80" | ''A''
! width="40" | ''V''
+
! width="80" | ''V''
 
! width="40" | ''C''
 
! width="40" | ''C''
! width="40" | ''E''
+
! width="80" | ''E''
 
|}
 
|}
  
 
==== Arguments ====
 
==== Arguments ====
  
* '''const UByte''' ''B'': Memory bank to access.
+
* '''const Bit[4]''' ''B1'': First memory bank to access.
* '''const UShort''' ''A'': Address of the value to retrieve.
+
* '''const Bit[4]''' ''B2'': Second memory bank to access.
* '''const Short''' ''V'': Unsigned value to compare the retrieved value to.
+
* '''const UShort''' ''A'': Address, from the first bank, of the value to retrieve.
 +
* '''const Short''' ''V'': Unsigned value to compare the retrieved value to, or address from the second bank of the value to retrieve, if ''B2'' is non-zero.
 
* '''const UByte''' ''C'': Type of comparison to perform.
 
* '''const UByte''' ''C'': Type of comparison to perform.
 
* '''const UShort''' ''E'': Amount to jump if the comparison does not hold.
 
* '''const UShort''' ''E'': Amount to jump if the comparison does not hold.
Line 23: Line 24:
 
==== Description ====
 
==== Description ====
  
This is similar to the [[FF7/Field/Script/Opcodes/18 IFSWL|IFSWL]] opcode in allowing the comparison value to be negative, but in addition, allows the jump on comparison failure to be longer than 0xFF bytes.
+
This is similar to the [[FF7/Field/Script/Opcodes/16 IFSW|IFSW]] opcode in allowing the comparison value to be negative, but in addition, allows the jump on comparison failure to be longer than 0xFF bytes.

Latest revision as of 05:16, 23 May 2019

  • Opcode: 0x17
  • Short name: IFSWL
  • Long name: If (Signed Word, Long Jump)

Memory layout

0x17 B1 / B2 A V C E

Arguments

  • const Bit[4] B1: First memory bank to access.
  • const Bit[4] B2: Second memory bank to access.
  • const UShort A: Address, from the first bank, of the value to retrieve.
  • const Short V: Unsigned value to compare the retrieved value to, or address from the second bank of the value to retrieve, if B2 is non-zero.
  • const UByte C: Type of comparison to perform.
  • const UShort E: Amount to jump if the comparison does not hold.

Description

This is similar to the IFSW opcode in allowing the comparison value to be negative, but in addition, allows the jump on comparison failure to be longer than 0xFF bytes.