808~
Object
Module
Formats
Version
4.~
Oiaqrams
land
2
show
valid
fixups.
In
diaqram
3,
the
TARGET
is
not
in
the
defined
PSEG. A
warning
will
be
qiven
by
LOCATE.
In
diagram
4,
if
the
choice
for
PSEG
is
chanqed
from
SICA)
to
SICS)
then
the
fixup
can
be
made,
as
in
diagram
5,
if
the
displacement
is
qreater
than
32K a
·clever-
fixup,
shown
in
diaqram
5
as
an
exclamatory
arrow,
will
be-
qenerated.
R & L
attempts
to
inform
the
us~r
of
any
erroneous
self-relative
references.
The
symbol
beinq
referenced
must
be
within
the
defined
PSEG
independent
of
the
bias
value
to
be
applied:
EXAMPLES: JMP
SYM
+
10
or
JMP
SYM
- 2
The
symbol
SYM
will
have
an
offset
within
its
containinq
LSEG.
The
values
10
and
-2
are
biases.
If
the
offset
of
SYM
is
added
to
the
bias
in
LOCATION
and
the
result
overflows,
it
is
not
known
whether
this
is
due
to
the
offset
of
SYM
beinq
qreater
than
64K
or
whether
the
bias
(perhaps
a
neqative
or
positive
numher)
caused
the
overflow.
If
the
bias
caused
the
overflow
then
the
reference
is
good
accordinq
to
R &
L,
if
not,
then
SYM
is
not
in
the
defined
PSEG
and
the
reference
is
invalid.
The
solution
to
this
problem
is
to
maintain
the
offset
of
SYM
independent
of
the
bias.
If
the
TARGE'r
is
specified
in
a
primary
way
(e.q.,
"TARGE'r:
SICS)
,d-.
then
the
offset
will
be
maintained
in
the
fixup
record
itself
and
will
be
added
to
LOCATION
only
at
LOCATE
time.
If
the
TARGET
is
specified
in
a
secondary
way
(e.q.,
dTARGET:
SI(8)"),
then
the
offset
must
be
maintained
in
LOCATION
itself,
and
R & L
can
~o
less
checking
on
the
correctness
of
the
fixup.
If
the
LOCATION
is
an
OFFSET
(i.e.,
a
full
word,
not
just
a
byte)
and
the
bias
is
known
to
be
zero,
then
a
fixup
tarqet
of:
TARGET:
SI(B)
could
be
used
instead
of
TARGET:
SICS)
,dl,
without
sacrificinq
any
correctness
checkinq.
1"
2