808~
Object
~odule
Formats
Version
4.9
<----
in
OATA
Record
---->
<---
in
FIXUP
Record
--->
+------+
+------+------+
+n
or
+n
<null>
<---
Case
1
+------+
+-------+
...
------+
+------+
+-~----+------+
+------+----~~+
q
or
q
+n
<---
Case
2
+------+
+------+
q
or
<---
Case
3
+------+
Case
1
illustrates
the
situation
where
a
fixup
is
specified
in
a
"secondary"
way.
No
explicit
displacement
10'
is
provided
in
the
FIXUP
Record,
so
arithmetic
must
be
done
in
the
LOCATION
itself,
in
the
DATA
Record.
As
tha
diagram
shows,
the
LOCATION
may
be
a
byte
or
a
word.
(If
LOCATION
is
a POINTER,
arithmetic
is
on
each
half
separately,
so
the
above
diagram
applies
separately
to
each
half
of
a POINTER.)
In
Case
1,
the
value(s)
in
LOCATION
are
considered
to
be
non-negative
numbers
("+n"',
and
are
considered
to
be
equivalent
to
a
specification
of
a
displacement
'0';
thus
the
R&L
access
verification
incorporates
the
value
"+n".
Case
2
illustrates
the
situation
where
a
fixup
is
specified
in
a
"primary"
wa:'.
An
explicit
displacement
'0'
is
provided
in
the
FIXUP
Record.
This
displacement
is
considered
to
be
a
non-neqative
number
("+n-).
When
all
arithmetic
required
by
the
fixup
is
complete,
the
resultant
value
(in
the
FIXUP
Record)
is
checked
for
validity
by
R&L,
and
then,
finally,
that
result
is
added
(modulo
256
or
modulo
65536)
to
the
oriqinalcontent
of
LOCATION
C'q").
The
value
d
g
"
may
be
considered
as
non-negative,
or
as
siqned
2's
complement;
R&L
doesn't
care
because
there
is
no
checkinq
in
this
final
staqe
of
the
fixup.
Case
3
is
the
same
as
Case
2,
except
that
the
displacement
'0',
instead
of
beinq
restricted
to
non-negative
numbers
in
the
range
{0:65535},
may
represent
signed
(2's
complement)
numbers
in
the
ranqe
{-1,048,576:1,048,575}.
(Note:
initially,
this
case
will
not
be
supported.
It
is
desiqned
into
the
formats
for
completeness:
it
allows
support,
with
R&L
access
verification,
of
TARGET'S
specified
in
a
"primary"
way,
with
negative
displacefl\ents
10
1
.)
Here
are
some
cases
~here
a
"primary"
specification
of
a
TARGET
is
necessary
or
desirable:
First,
yet
another
definition:
a -REFERENT"
is
a
memory
location,
with
respect
to
which
a
TARGE'r
is
positioned.
This
is
best
made
clear
by
an
example:
in
the
specification
TARGET: EI(STRUCT)
,24
the
TARGET
is
the
24'th
byte
after
the
location
named "STRUCT";
the
REFERENT
is
the
location
named
"STRUCT"
itself.
19