# `ini`

[Z80 Documentation](https://asm-editor.specy.app/documentation/z80.md) › [Instructions](https://asm-editor.specy.app/documentation/z80/instruction.md)

Web page: https://asm-editor.specy.app/documentation/z80/instruction/ini

**Input and increment**

Category: Input/output

Reads a byte from the port addressed by BC into (HL), then increments HL and decrements B.

2 bytes · 16 cycles

## Flags

| Flag | Effect |
| --- | --- |
| S | undefined afterwards |
| Z | changed in a way of its own, as the form says |
| H | undefined afterwards |
| P/V | undefined afterwards |
| N | always 1 |
| C | undefined afterwards |

## Forms

- `ini` · A byte from the port at the 16-bit address contained in the BC register pair is written to the memory location pointed to by HL. Then HL is incremented and B is decremented. Note that the carry flag may be affected, contrary to documentation. [Read More](http://z80.info/z80undoc3.txt)

## Example

```z80
        .org 0x8000
        ld hl, 0x9000
        ld b, 2
        ld c, 0xF0
        ini
        halt
```
