 |
_rom_call_addr_hack |
Function (Macro Constructor) |
#define _rom_call_addr_hack(index,addr,minams) (_rom_call_addr_hack_concat (0x##index, _ROM_CALL_##index, (addr), (minams), 0x##index)) |
Returns a void pointer for a TIOS ROM call, using an address hack if needed.
_rom_call_addr_hack works exactly like
_rom_call_addr,
except that it takes an additional parameter addr specifying an
alternative way to get the address of the ROM call. If the TIOS jump table
contains the ROM call specified by index, the address from the jump
table is used. Otherwise _rom_call_addr_hack computes the address specified by
addr (which can be any pointer type), and returns it.
minams specifies the AMS version which first exports the ROM call
identified by index. If the value of
MIN_AMS
is greater or
equal to the value of minams, the ROM call is used unconditionally.
When using this macro directly, you need to make sure that this value is
correct; otherwise you will get crashes only if a specific value for
MIN_AMS
has been
chosen and an unsupported AMS version is used.
See also: _rom_call_addr, _rom_call_hack, Manually Obtaining the Address of a ROM Function