; a0 = buffer pointer

; !!! destination buffer do have only 6 elements valid !!!

   SECTION  text,code

   XDEF     _transpose

_transpose:
         movem.l  d0-d6/a0-a1,-(sp)

         movea.l  a0,a1

         move.b   (a0)+,d0
         lsr.b    #1,d0
         roxl.b   #1,d1
         lsr.b    #1,d0
         roxl.b   #1,d2
         lsr.b    #1,d0
         roxl.b   #1,d3
         lsr.b    #1,d0
         roxl.b   #1,d4
         lsr.b    #1,d0
         roxl.b   #1,d5
         lsr.b    #1,d0
         roxl.b   #1,d6

         move.b   (a0)+,d0
         lsr.b    #1,d0
         roxl.b   #1,d1
         lsr.b    #1,d0
         roxl.b   #1,d2
         lsr.b    #1,d0
         roxl.b   #1,d3
         lsr.b    #1,d0
         roxl.b   #1,d4
         lsr.b    #1,d0
         roxl.b   #1,d5
         lsr.b    #1,d0
         roxl.b   #1,d6

         move.b   (a0)+,d0
         lsr.b    #1,d0
         roxl.b   #1,d1
         lsr.b    #1,d0
         roxl.b   #1,d2
         lsr.b    #1,d0
         roxl.b   #1,d3
         lsr.b    #1,d0
         roxl.b   #1,d4
         lsr.b    #1,d0
         roxl.b   #1,d5
         lsr.b    #1,d0
         roxl.b   #1,d6

         move.b   (a0)+,d0
         lsr.b    #1,d0
         roxl.b   #1,d1
         lsr.b    #1,d0
         roxl.b   #1,d2
         lsr.b    #1,d0
         roxl.b   #1,d3
         lsr.b    #1,d0
         roxl.b   #1,d4
         lsr.b    #1,d0
         roxl.b   #1,d5
         lsr.b    #1,d0
         roxl.b   #1,d6

         move.b   (a0)+,d0
         lsr.b    #1,d0
         roxl.b   #1,d1
         lsr.b    #1,d0
         roxl.b   #1,d2
         lsr.b    #1,d0
         roxl.b   #1,d3
         lsr.b    #1,d0
         roxl.b   #1,d4
         lsr.b    #1,d0
         roxl.b   #1,d5
         lsr.b    #1,d0
         roxl.b   #1,d6

         move.b   (a0)+,d0
         lsr.b    #1,d0
         roxl.b   #1,d1
         lsr.b    #1,d0
         roxl.b   #1,d2
         lsr.b    #1,d0
         roxl.b   #1,d3
         lsr.b    #1,d0
         roxl.b   #1,d4
         lsr.b    #1,d0
         roxl.b   #1,d5
         lsr.b    #1,d0
         roxl.b   #1,d6

         move.b   (a0)+,d0
         lsr.b    #1,d0
         roxl.b   #1,d1
         lsr.b    #1,d0
         roxl.b   #1,d2
         lsr.b    #1,d0
         roxl.b   #1,d3
         lsr.b    #1,d0
         roxl.b   #1,d4
         lsr.b    #1,d0
         roxl.b   #1,d5
         lsr.b    #1,d0
         roxl.b   #1,d6

         move.b   (a0)+,d0
         lsr.b    #1,d0
         roxl.b   #1,d1
         lsr.b    #1,d0
         roxl.b   #1,d2
         lsr.b    #1,d0
         roxl.b   #1,d3
         lsr.b    #1,d0
         roxl.b   #1,d4
         lsr.b    #1,d0
         roxl.b   #1,d5
         lsr.b    #1,d0
         roxl.b   #1,d6

         move.b   d1,(a1)+
         move.b   d2,(a1)+
         move.b   d3,(a1)+
         move.b   d4,(a1)+
         move.b   d5,(a1)+
         move.b   d6,(a1)+
         movem.l  (sp)+,d0-d6/a0-a1
         rts

         END
