B.1 BCD-to-DPD Translation; B.2 DPD-to-BCD Translation
The following describes conversions between 3-digit BCD and 10-bit DPD formats.
def BCD_TO_DPD( BCD ):
a <- BCD[0]
b <- BCD[1]
c <- BCD[2]
d <- BCD[3]
e <- BCD[4]
f <- BCD[5]
g <- BCD[6]
h <- BCD[7]
i <- BCD[8]
j <- BCD[9]
k <- BCD[10]
m <- BCD[11]
p <- ((f & a & i & ¬e) | (j & a & ¬i) | (b & ¬a))
q <- ((g & a & i & ¬e) | (k & a & ¬i) | (c & ¬a))
r <- d
s <- ((j & ¬a & e & ¬i) | (f & ¬i & ¬e) |
(f & ¬a & ¬e) | (e & i))
t <- ((k & ¬a & e & ¬i) | (g & ¬i & ¬e) |
(g & ¬a & ¬e) | (a & i))
u <- h
v <- (a | e | i)
w <- ((¬e & j & ¬i) | (e & i) | a)
x <- ((¬a & k & ¬i) | (a & i) | e)
y <- m
return (p || q || r || s || t || u || v || w || x || y)
def DPD_TO_BCD(DPD):
p <- DPD[0]
q <- DPD[1]
r <- DPD[2]
s <- DPD[3]
t <- DPD[4]
u <- DPD[5]
v <- DPD[6]
w <- DPD[7]
x <- DPD[8]
y <- DPD[9]
a <- ((¬s & v & w) | (t & v & w & s) | (v & w & ¬x))
b <- ((p & s & x & ¬t) | (p & ¬w) | (p & ¬v))
c <- ((q & s & x & ¬t) | (q & ¬w) | (q & ¬v))
d <- r
e <- ((v & ¬w & x) | (s & v & w & x) |
(¬t & v & x & w))
f <- ((p & t & v & w & x & ¬s) | (s & ¬x & v) |
(s & ¬v))
g <- ((q & t & w & v & x & ¬s) | (t & ¬x & v) |
(t & ¬v))
h <- u
i <- ((t & v & w & x) | (s & v & w & x) |
(v & ¬w & ¬x))
j <- ((p & ¬s & ¬t & w & v) | (s & v & ¬w & x) |
(p & w & ¬x & v) | (w & ¬v))
k <- ((q & ¬s & ¬t & v & w) | (t & v & ¬w & x) |
(q & v & w & ¬x) | (x & ¬v))
m <- y
return (a || b || c || d || e || f || g || h || i || j || k || m)