izapple2/component/pins.go

36 lines
469 B
Go

package component
func ByteToPins(v uint8) [8]bool {
var pins [8]bool
for i := 0; i < 8; i++ {
pins[i] = (v & 1) != 0
v >>= 1
}
return pins
}
func PinsToByte(pins [8]bool) uint8 {
v := uint8(0)
for i := 7; i >= 0; i-- {
v <<= 1
if pins[i] {
v++
}
}
return v
}
func ReversePins(data uint8) uint8 {
pins := ByteToPins(data)
return PinsToByte([8]bool{
pins[7],
pins[6],
pins[5],
pins[4],
pins[3],
pins[2],
pins[1],
pins[0],
})
}