808~
Object
Module
Formats
Version
4.0
LINE
NUMBERS
RECORD
(LINNUM)
***********************///***********************************
* * * * * * *
*
REC
*
RECORD
* LINE * LINE *
LINE
* CHK *
* TYP *
LENGTH
*
NUMBER
*
NUMBER
*
NUMBER
*
SUM
*
* 94H * * BASE * * OFFSET * *
* * * * * * *
***********************///***********************************
I I
+--------repeated-------+
This
record
provides
the
means
by
which
a
translator
may
pass
to
a
debugger
proqram,
the
correspondence
between
a
line
number
in
source
code
and
the
correspondinq
translated
code.
Since
several
independent
source
modules,
with
independent
line
numberinq,
may
be
linked
to
form
a
sinqle
module,
a
full
identification
of
a
source
text
line
must
include
both
its
number,
and
also
the
name
of
the
original
containinq
module.
The
latter
identification
is
provided
by
the
previous
T-MODULE
HEADER
Record.
LINE
NU!\1BER
SASE
The
LINE
NUMBER
BASE
has
the
following
format:
*****///*********///*****************
* * * *
*
*
*
GROUP
INDEX
*
*
*
SEGMENT
*
INDEX *
*
FRAME
NUMBER
*
*
*
* * * *
*****///*********///*****************
I ,
+conditional+
The
LINE
NU~BER
BA~~
has
the
same
format
and
interpretation
as
the
LOCAL
SY~BOL
BASE
described
for
the
LOCSYM
record.
The
SEGMENT
INDEX
and
(if
present)
the
FRAME
NUMBER
fields
determine
the
location
of
the
first
byte
of
code
correspondinq
to
some
source
line
number.
This
location
may
be
physical
(SEGMENT INDEX
is
0)
or
logical
(SEGMENT INDEX
is
non-zero).
The
value
of
the
GROUP
INDEX
field,
if
non-zero,
informs
LOCATE-8h
what
base-part
to
use
for
describing
the
final,
20-bit
location
of
the
code
line.
An
example
shows
the
use
of
a
non-zero
Group
Index:
A
translator
knows
that
the
code
segment
it
is
compiling
is
~ut
one
LSEG
of
many
in
a
Group,
and
thus
references
to
pieces
of
the
code
seqment
are
fixed
up
under
the
assumption
that
the
appropriate
seqment
register
contains
the
location
of
the
base
of
the
group.
At
debuq
time,
the
user
may
tell
51