#### 12.2.68 dpb [Function] ¶

`dpb` newbyte bytespec integer ⇒ result-integer

#### Pronunciation:: ¶

pronounced ,de ’pib or pronounced ,de ’pe b or pronounced ’d\=e ’p\=e ’b\=e

#### Arguments and Values:: ¶

newbyte—an integer.

bytespec—a byte specifier.

integer—an integer.

result-integer—an integer.

#### Description:: ¶

dpb (deposit byte) is used to replace a field of bits within integer. dpb returns an integer that is the same as integer except in the bits specified by bytespec.

Let `s` be the size specified by bytespec; then the low `s` bits of newbyte appear in the result in the byte specified by bytespec. Newbyte is interpreted as being right-justified, as if it were the result of ldb.

#### Examples:: ¶

     (dpb 1 (byte 1 10) 0) ⇒  1024
     (dpb -2 (byte 2 10) 0) ⇒  2048
     (dpb 1 (byte 2 10) 2048) ⇒  1024

#### See Also:: ¶

byte, byte-size, byte-position [Function] , deposit-field [Function] , ldb [Accessor]

#### Notes:: ¶

     (logbitp j (dpb m (byte s p) n))
     ≡ (if (and (>= j p) (< j (+ p s)))
            (logbitp (- j p) m)
            (logbitp j n))

In general,

     (dpb x (byte 0 y) z) ⇒  z

for all valid values of x, y, and z.

Historically, the name “dpb” comes from a DEC PDP-10 assembly language instruction meaning “deposit byte.”