Hi, for the development for the port parallel interface, I've planned to map the unsigned_8 value to a record of bits of type (on,off). Do you know how to mask an integer or unsigned_8? As far as I haven't found an ellgant way I've done this: I've the next definitions: type flag is (on, off); type Registro_Byte is record Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6, Bit7 : Flag; end record; data : registro_byte; register : unsigned_8; (...) I load an 8-bit integer into the register: register:= 128; (this is done via DOSPORTS libraries) I want data to be a map of the register bit: if Integer (Shift_Right (register , 0) mod 2 ) = 1 then data.Bit0 := On; else data.Bit0 := Off; end if; if Integer (Shift_Right (register , 1) mod 2 ) = 1 then data.Bit1 := On; else data.Bit1 := Off; end if; and so on 'til BIT7. Do you know how to assign the values using a loop? I don't know how to do a loop that works like the next false one: for ix in 0..7 loop if Integer (Shift_Right (register , ix ) mod 2 ) = 1 then data.BIT(ix) := On; -- wrong line else data.Bit(ix) := Off; -- wrong line end if; end loop; Thank you in advance. Carlos