@@ -584,6 +584,73 @@ An atom.
584584 'abcd'
585585```
586586
587+---
588+### `++rev`
589+
590+Reverses block order, accounting for leading zeroes.
591+
592+Produces an atom from the bits of `dat` in reverse order according to a block
593+size `boz` and a size `len`.
594+
595+If the total size is less than the length of `dat`, then only the first
596+bits of `dat` up to the total size will be taken and reversed. If the total size
597+is longer, trailing zeroes will be added.
598+
599+#### Accepts
600+
601+`boz` is a block size with optional block count (see
602+ [`$bloq`](/docs/hoon/reference/stdlib/1c#bloq)).
603+
604+`len` is a `@ud` of the number of blocks of size `boz` to be reversed.
605+
606+`dat` is an atom.
607+
608+#### Produces
609+
610+An atom.
611+
612+#### Source
613+
614+```hoon
615+++ rev
616+ ~/ %rev
617+ |= [boz=bloq len=@ud dat=@]
618+ ^- @
619+ =. dat (end [boz len] dat)
620+ %+ lsh
621+ [boz (sub len (met boz dat))]
622+ (swp boz dat)
623+```
624+
625+#### Examples
626+
627+```
628+> =a 0b1111.0000.1111.1010.0011
629+
630+> `@ub`(rev 0 20 a)
631+0b1100.0101.1111.0000.1111
632+
633+> `@ub`(rev 0 12 a)
634+0b1100.0101.1111
635+
636+> `@ub`(rev 2 5 a)
637+0b11.1010.1111.0000.1111
638+
639+> `@ub`(rev 2 4 a)
640+0b11.1010.1111.0000
641+
642+> `@ub`(rev 2 6 a)
643+0b11.1010.1111.0000.1111.0000
644+
645+> (rev 1 10 1.000)
646+179.200
647+
648+> (rev 2 5 1.000)
649+582.400
650+
651+> (rev 1 5 1.000)
652+175
653+```
587654
588655---
589656### `++rip`