Self-Test
When
the
machine first powers up,
the
boot
ROM gets control. Before transferring control
to
a system by
booting
it,
the
boot
ROM
has
several responsibilities.
Hardware Initialization Support.
Some
hardware
must
be
initialized as soon as possible
after
power-up
to
prevent
improper
operation. Examples
are
display initialization
and
floating RAM positioning,
neither
of which
can wait for
an
OS
to
be
loaded.
Assembly Self-Test Support.
Self-Tests have
about
95% confidence
that
a
tested
logic assembly is functioning properly.
The
reason for these
tests
is
to
tell
the
user
that
the
computer
is working properly.
This
consists
of
indicating all installed accessories in
the
computer
(and
expander, if connected)
and
reporting
all
detected
failures.
Boot
ROM self-test routines may
not
identify
and
indicate all hardware failures correctly. Sev-
eral things
contribute
to
this.
They
include
hardware
design
and
the
fact
that
testing
for 100%
of all failure
types
is virtually impossible.
Tests Performed
by
the Boot ROM
Set-Up Code Segment
A series of
tests
and
initialization routines which set
up
the
computer
so
the
rest of
the
Boot
RO M code
can
function safely
are
the
first section of Boot ROM code.
The
first
part
of
the
unextendable
code segment includes
the
following routines (note
that,
before eaeh step,
the
LEDs are set
to
a new value which reflects
that
step):
1.
Bus
Error
Handler:
The
BUS
ERROR
veetor is set
up
to
point
to
a routine which decides if
the
CPU
stack
registers are functional.
2.
CPU
Test:
Three
different values
are
passed, one
at
a time,
through
each of
the
CPU
Registers.
If
an
error
oecurs,
the
Boot ROM
halts
with a
"CPU
Failed" code on
the
LEDs.
3.
Position
Floating
RAM
and
Pre-load
the
Top of Memory:
The
Boot ROM steps
through
the
first 16K bytes of memory, until a
bus
error
occurs
and
to
initialize for
the
top
memory test.
If
a
bus
error
does
not
occur,
the
Boot ROM
starts
at
the
top
of memory
and
reads every 64
Kbyte
boundary
until a
bus
error
occurs
or
until
just
before
the
bottom
RAM address is reached.
4.
Cycle LEDs:
The
LEDs
are
rippled fronl all on
to
all off except one.
There
is a snlall delay for each
ripple
state
which
is
used
to
cause a
short
delay between memory pre-load
and
the
test
to
check for memory refresh failures.
Boot ROM Functions
133