EasyManua.ls Logo

Xerox Alto I - Page 22

Xerox Alto I
82 pages
Print Icon
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Alto
Hardware Manual
Section
3:
Emulator
NEG
1 1
COM
1 1
To
OR
together the contents
of
ACO
and
Ac1;
result
in
ACO:
COM
1 1
AND
1 0
ADC
1 0
To
XOR together the contents
of
ACO
and-
Ac1;
result
in
ACO:
MOV
0 2
ANDZL
1 2
ADD
1
0
SUB
2 0
To negate a double-length number in
ACO
and
Ac1:
NEG
1 1
SNR
NEG
0 0
SKP
COM
0 0
To
add the double-length number in
Ac2,AC3
to
one in ACO,AC1:
ADDZ
3 1
SZC
INC
2 2
ADD
2 0
To subtract the double-length number in
Ac2,AC3
from
one in ACO,AC1:
SUBZ
3 1
SZC
SUB
2 0
SKP
ADC
2 0
16
The
Bcpl
construct
"if
a gr b then
.....
uses
code
which
does a subtract
and
checks the sign.
Unfortunately, this
is
not a true signed compare because the subtract may overflow. With this
code,
2 gr 0
is
true, but
077777B
gr
100000B
is
false
(077777B
is
the largest positive number and
100000B
the largest negative). The code generated
by
Bcpl looks like:
LDA
0
4,2
LDA
1
5,2
ADCL#
1 0
SZC
JMP
falsePart
JMP
truePart
Pick
up
a
Pick
up
b
Subtract
and check
sign
Not
true
True
The "true signed compare" for
vb
is:
LDA
0
4,2
LDA
1
5,2
SUBZR
2 2
AND
1 2
ADDL
0 2
ADC#
1 0
SNC
JMP
falsePart
JMP
truePart
S-GROUP INSTRUCTIONS
Pick
up
a
Pick
up
b
Place
100000B
in
AC2
AC2=(if
b<O
then
100000B
else
0)
CARRY=(if
a and b
signs
differ
then
1
else
0)
Opcodes in the range
60000B-77777B,
are assigned to the s-group, which comprises a variety
of
miscellaneous instructions and unimplemented operations.
Bits
3 through 7
of
the instruction determine
32
opcodes, each
of
which may use the displacement field (bits
8-15
of
the instruction). One
of
these
opcodes
(61xxx,
O<xxx::S;377B)
uses the displacement field
to
represent up to
256
instructions which do
not require a displacement or a parameter
as
part
of
the opcode.

Related product manuals