EasyManua.ls Logo

Rabbit 2000 - Page 153

Rabbit 2000
174 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...
Rabbit 3000A Instruction
Instruction Reference Manual 149
Description
While the data in the BC does not equal 0, then:
the data at the address in IY is multiplied by the data in DE;
the data in alternate register DE’ is added to that value;
the C flag is added to that value; and
this value is added to the data at the address in IX (for UMA) or
this value is subtracted from the data at the address in IX (for UMS).
This results in a 24-bit value. The lowest eight bits of this value are stored memory at the address in HL, and
the upper 16 bits are stored in the alternate register DE’. If The data in IX, IY, and HL are then incremented,
and the data in BC is decremented. The instruction then repeats until BC equals zero. Interrupts can occur
between different repeats, but not within an iteration.
These instructions are implemented in the Rabbit 3000A.
UMA
UMS
Opcode Instruction Clocks Operation
ED C0 UMA 8+8i (2,2,2,
(2,2,3,1)i,2)
[CY:DE’:(HL)} =
(IX) + [(IY)*DE+DE’+CY];
BC = BC - 1; IX = IX + 1;
IY = IY + 1; HL = HL + 1;
repeat while BC != 0
ED C8 UMS 8+8i (2,2,2,
(2,2,3,1)i,2)
[CY:DE’:(HL)} =
(IX) - [(IY)*DE+DE’+CY];
BC = BC - 1; IX = IX + 1;
IY = IY + 1; HL = HL + 1;
repeat while BC != 0
Flags ALTD I/O
S Z L/V C F R SP S D
- - -•

Other manuals for Rabbit 2000