3 absolute values, 4 buffer addresses, 5 byte counts – Avago Technologies LSI53C1010 User Manual
Page 175: Absolute values, Buffer addresses, Byte counts

Patching
7-9
7.2.2.2 Procedure 2
1.
Create a buffer to hold all the individual relative buffers.
UCHAR rel_buffer[8]
2.
Patch all buffers in one loop if the main Patch array is accessed and
the Header record is used. The
-o
assembler option must be used
for this procedure to work.
for(i=0; i<Rel_Count; i++) {
SCRIPT[Rel_Patches[i]] += VirttoPhys(rel_buffer);
}
See
Chapter 5, “The NASM Output File,”
for more information on the
structures created for patching relative buffers.
7.2.3 ABSOLUTE Values
ABSOLUTE values are patched exactly like EXTERN buffers. The
-o
compiler option must be used to patch Absolutes. See
for more information on ABSOLUTE values.
7.2.4 Buffer Addresses
Buffer addresses are usually patched into Block Move, Memory to
Memory, or Load/Store instructions. They are usually defined as
EXTERNS, RELATIVES, or ABSOLUTES. The general format of this
type of patch is:
SCRIPT[X_buffername_Used[n]] = VirttoPhys(c_buffer);
Where
X
is either E (Extern), R (Relative), or A (Absolute) depending on
the type of buffer used.
n
is the nth occurrence of this buffer in the SCRIPTS program.
c_buffer
is a buffer/array defined in ‘C’.
See
Chapter 5, “The NASM Output File,”
for more information on the
_Used
array.
7.2.5 Byte Counts
Byte counts are usually patched into Block Move, Memory to Memory, or
Load/Store instructions. Since the byte count is usually encoded in the