Relative_Pointers module

write_relative_pointer

procedure2 overloadsSource

Stores a relative pointer of integer type type at pointer_address that leads to target_address; null clears it.

write_relative_pointer :: (
    $type: Type,
    pointer_address: *void,
    target_address: *void
)

Parameters

$type: Type
pointer_address: *void
target_address: *void
Example↗
slot: s16;
value: u8;
write_relative_pointer(s16, *slot, *value);
assert(decode_relative_pointer_static(s16, *slot) == *value);
write_relative_pointer :: (
    $type: Type,
    pointer_address: *void,
    base_address: *void,
    target_address: *void
)

Like the three-argument form, but the offset counts from base_address instead of from where the pointer is stored.

Parameters

$type: Type
pointer_address: *void
base_address: *void
target_address: *void

See also