Difference between revisions of "FF7/Field/Script/Opcodes/77 PLUS2!"

From Final Fantasy Inside
< FF7‎ | Field‎ | Script‎ | Opcodes
Jump to navigation Jump to search
my_wiki>Halkun
 
my_wiki>Halkun
(Memory layout)
Line 5: Line 5:
 
==== Memory layout ====
 
==== Memory layout ====
 
{| 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" | 0x76
+
! width="40" | 0x77
 
! width="40" | ''D/S''
 
! width="40" | ''D/S''
 
! width="40" | ''Dest''
 
! width="40" | ''Dest''

Revision as of 01:39, 3 September 2006

  • Opcode: 0x77
  • Short name: PLUS2!
  • Long name: Saturated Addition (16-bit)

Memory layout

0x77 D/S Dest Oper

Arguments

  • const Bit[4] D: Destination bank
  • const Bit[4] S: Source bank
  • const UByte Dest: The destination variable, to which the operand is added.
  • const SWord Oper: The operand, added to the destination.

Description

Adds two numbers together and stores the result back into "Dest" The result of the addition is capped at 32767. Oddly enough the result is not capped at the negative end, -32768, so adding two large negative numbers together will still produce wrap-around. If the Source Bank is 0 then the “Oper” is added to the destination value. If the Source Bank is an 16 bit bank, then the “Oper” is the address in that bank where the operand is.