EasyManuals Logo
Home>Xerox>Desktop>Alto I

Xerox Alto I User Manual

Xerox Alto I
82 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #73 background imageLoading...
Page #73 background image
Alto Hardware Manual
Section
9:
Nuts and Bolts for the Microcoder
64
The most devious use
of
IR
involves a group
of
constants labeled
srO
to sr12, sr14 to srl7,
and
sr20 to sr37
(as
you might suspect, the numbers on these constant names
are
octal).
If
the
constant
sri has been loaded into
IR,
then the following code will cause control to transfer to
location
FOO
OR
i:
IDISP;
(see section 3.5)
:FOO;
The statement above
is
only true
if
i
is
less than
20B;
otherwise
an
additional dispatch
on
the
DISP
field
of
IR
is required to get the desired effect:
F00l3:
SINK~DISP,
BUS;
:F0020;.
(This explains
why
there
is
no
srB.
Any
of
sr20-sr37 will carry control to
the
13Bth entry
in
FOO'S
dispatch table, where an additional level
of
dispatch can
be
used to differentiate among
them
if
necessary
..
You may
be
wondering what is special about
13B.
You are
in
good company.)
9.2.2
The Silent Boot
Many
of
the effects
of
a hardware "reset" operation (invoked by the
boot
button,
or
BUS[O]
= I
in
conjunction with the emulator-specific Fl
STARTF
(17B»
can be faithfully simulated by emulated software.
At least
two
important ones
cannot
A reset operation is the only
way
of
moving non-RAM-related tasks
back
and
forth between
ROMO
and
RAMO,
and the only way
of
guaranteeing tllat all tasks are initialized.
However, the time required for a reset operation
is
not necessariiy longer than a
few
microseconds.
On
both Alto Is and Alto lIs a reset operation does not alter the contents
of
the Alto's R
or
S registers, its
. microinstruction
RAM,
or its main memory. Therefore
if
these memories contain appropriate contents
it
is
not
really necessary to go through the full disk or Ethernet bootstrap load sequence, since the major
purpose
of
those sequences
is
to initialize these memories with desired. contents.
The "silent
boot" consists first
of
getting the desired contents into the
RAM
and
main
memory.
RAMO
should contain an emulator task (beginning with address 0) which, for example, simply jumps into the
main loop
of
the
ROM
emulator code, skipping all . the bootstrap code.
For
example:
NOVEM:
SWMODE;
(RAMO
location
0,
task
O's
reset location,)
:START;
(to
ROMO
location
·20B)
Second, the reset mode register should
be
set
so
that the reset operation will begin execution
of
the
emulator task in
RAMO,
and the other tasks wherever they are
desired,Finally,
the reset operation is
initiated, the emulator hiccoughs momentarily into
RAMO,
and then proceeds in
ROMO
as
if
p.othing
had
happened.
9.2.3
Debugging
the Emulator
As
someday it may happen that a bug must be. found
in
a new version
of
the emulator, microcodes
should
be
aware
of
a nice trick. Suppose you have
an
Alto with a working emulator
in
its
ROM,
and
load the suspect emulator into the RAM. Your courage leads you to execute a JMPRAM with
Acl
=
20B
(START),
and hope that the new emulator behaves. But alas, the machine dives into oblivion. Now the
trick applies: before jumping into the
RAM
version, plant a
JMPRAM
(with
Acl=20B)
somewhere
in
the
Nova code that you know will be executed. Now go to the
RAM
with the horrid JMPRAM.
If
the suspect
emulator has not died by the time it
executes· the
JMPRAM
you
planted, control will
return
to the benign
ROM.
This method, together with the obvious search technique, may locate an offending emulator
instruction.

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Xerox Alto I and is the answer not in the manual?

Xerox Alto I Specifications

General IconGeneral
BrandXerox
ModelAlto I
CategoryDesktop
LanguageEnglish

Related product manuals