.TITLE BITSWP ;SWAP BITS IN BYTE FOR 7TRK XFER TO DG SYSTEMS ; CALL BITSWP(ADDR,NBYTES) ;TO SWAP BITS IN PLACE IN ARRAY. ; SWAPS LOW AND HIGH 4 BITS IN EACH BYTE. .GLOBL BITSWP BITSWP: MOV 2(R5),R0 ;ADDRESS MOV @4(R5),R1 ;GET BYTE COUNT BGT 1$ 2$: RTS PC ;RETURN ON NEG OR 0 1$: MOVB (R0),R2 ;GET A BYTE MOV R2,R3 ;COPY ASH #4,R2 ;SHIFT LOW BITS UP ASH #-4,R3 ;AND HIGH BITS DOWN BIC #^C360,R2 ;LEAVE ONLY HIGH BITS ON BIC #^C17,R3 ;AND LOW BITS IN APPROPRIATE REGS BIS R3,R2 ;OR THEM BACK MOVB R2,(R0)+ ;STORE IN ARRAY DEC R1 ;COUNT DOWN BYTES TO DO BGT 1$ ;TILL DONE RTS PC ;THEN RETURN .END