beautypg.com

Indr input, decrement and repeat (byte) – Zilog Z80380 User Manual

Page 108

background image

5-74

Z380

U

SER

'

S

M

ANUAL

DC-8297-03

Z

ILOG

INDR
INPUT, DECREMENT AND REPEAT (BYTE)

INDR

Operation:

repeat until (B=0) begin

(HL)

(C)

B

B – 1

HL

HL – 1

end

This instruction is used for block input of strings of data. The string of input data from the
selected peripheral is loaded into memory at consecutive addresses, starting with the
location addressed by the HL register and decreasing. During the I/O transaction the
32-bit BC register is placed on the address bus. Note that the B register contains the loop
count for this instruction so that A15-A8 are not useable as part of a fixedport address.

First the byte of data from the selected peripheral is loaded into the memory location
addressed by the HL register. Then the B register, used as a counter, is decremented by
one. The HL register is then decremented by one, thus moving the pointer to the next
destination for the input. If the result of decrementing the B register is 0, the instruction is
terminated, otherwise the sequence is repeated. If the B register contains 0 at the start of
the execution of this instruction, 256 bytes are input.

This instruction can be interrupted after each execution of the basic operation. The Program
Counter value at the start of this instruction is saved before the interrupt request is accepted,
so that the instruction can be properly resumed.

Flags:

S:

Unaffected

Z:

Set if the result of decrementing B is zero; cleared otherwise

H:

Unaffected

V:

Unaffected

N:

Set

C:

Unaffected

Addressing

Execute

Mode

Syntax

Instruction Format

Time

Note

INDR

11101101 10111010

n X (2+i+w)