Mon, 15 Apr 2002 08:11:18 +0200
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
Bit7 : Flag;
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;
data.Bit0 := Off;
if Integer (Shift_Right (register , 1) mod 2 ) = 1 then
data.Bit1 := On;
data.Bit1 := Off;
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
data.Bit(ix) := Off; -- wrong line
Thank you in advance.