6.8 I/O Memory
 All ATtiny417/814/816/817 I/Os and peripherals are
            located in the I/O memory space. The I/O address range from 0x00 to 0x3F can be accessed
            in a single cycle using IN and OUT instructions. The
            extended I/O memory space from 0x0040 to 0x0FFF can be accessed by the
                LD/LDS/LDD and
                ST/STS/STD instructions,
            transferring data between the 32 general purpose working registers and the I/O memory
            space. 
I/O registers within the address range 0x00-0x1F are directly bit-accessible
            using the SBI and CBI instructions. In these
            registers, the value of single bits can be checked by using the SBIS
            and SBIC instructions. Refer to the Instruction Set section for more
            details. 
For compatibility with future devices, reserved bits must be written to ‘0’ if accessed. Reserved I/O memory addresses must never be written.
Some of the interrupt flags are cleared by writing a ‘1’ to them. On ATtiny417/814/816/817 devices, the
                CBI and SBI instructions will only operate on the
            specified bit and can be used on registers containing such interrupt flags. The
                CBI and SBI instructions work with registers
            0x00-0x1F only. 
General Purpose I/O Registers
The ATtiny417/814/816/817 devices provide four general
            purpose I/O registers. These registers can be used for storing any information, and they
            are particularly useful for storing global variables and interrupt flags. General
            purpose I/O registers, which reside in the address range 0x1C-0x1F, are directly
            bit-accessible using the SBI, CBI,
                SBIS, and SBIC instructions. 
