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 #74 background imageLoading...
Page #74 background image
Alto Hardware Manual Section
9:
Nuts and Bolts
for
the Microcoder
65
9.2.4
How
to
tell
if
extended
ROM
or
RAM
exists
A standard convention assures that location
777B
in
RaMI,
if
it exists, contains the code:
SWRET: SWMODE;
:START;
First,
we
store the following snatch
of
code in
RAMO,
with INRAM located at location
777B:
INRAM:
L+-
ACO+ 1, SWMODE;
ACO
...
L, :START;
Now
we
store 0 in
ACO,
and use the JMPRAM emulator instruction to branch to location
777B.
This will
cause either the
SWRET or INRAM code to be executed;
in
any
case,
the emulator instruction following the
JMPRAM
will
eventually be executed.
If
ACO
has been set to
1,
RaMI
does
not
exist; otherwise
RaMI
does
exist.
To determine whether the
3K
RAM option
is
present, use WRTRAM to write different values into
corresponding locations in two different RAM banks, then use RDRAM to read back the first location
written.
If
the
3K
RAM option
is
present, the location will still contain the value written into it;
if
the
option
is
absent, it
will
have been clobbered by the value intended for the second RAM bank.
9.2.5
RAM
Utility Area
It sometimes happens that a small piece
of
microcode must be loaded into the RAM so that the emulator
can execute it by doing a
JMPRAM to it; it will then return
to
the emulator.
For
example, such a piece
of
code
is
required in order to set the reset mode register.
By
convention, we reserve a utility
area
of
RAMO
for this purpose. The normal procedure
is
to
save the contents
of
this area (using RDRAM), store
the piece
of
code that is to be executed (using WRTRAM), execute the code (using JMPRAM), and then
restore the original contents. Writers
of
microcode should avoid placing code in the utility area that is
not part
of
the emulator task,
as
it
may be temporarily altered for these utility operations.
The normal utility area
is
774B
through
1003B
inclusive. The alert reader will recognize that JMPRAM can
successfully transfer into this area in
RAMO
when coming from
RaMO
(locations
1000B-1003B
are
accessible) or from
RaMI
(locations
774B-777B
are accessible). A program will therefore need to know
where it
is
executing
(RaMO
or
RaMI)
and use an appropriate entry point to the utility area.
9.2.6 Other Information
Correct operation
of
most Alto peripherals depends vitally on their tasks receiving adequate service. This
in
tum
depends on two things: '
l.
A task must have sufficient priority
to
gain however many cycles
it
needs for service, at the
expense
of
lower-priority tasks. The choice
of
priority must be made carefully when the
interface
is
designed.
2.
Other tasks at the same and lower priorities must be well-behaved. In particular, they must
perform task switches no further apart than the maximum latency permitted for the task in
question.

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