	.globl	bswap
| This routine is used to byte swap packets.
| Called:	bswap(data, len)
|		byte	*data;	/* pointer to data to be byte swapped */
|		unsw	len;	/* number of bytes to byte swap */
bswap:
	movl	sp@(4),a0	|get data pointer
	movl	sp@(8),d0	|get length
	addql	#1,d0
	lsrl	#1,d0		|compute word (16 bit) count
	subql	#1,d0		|to get loop termination at the right time
1$:	movw	a0@,d1		|get data word
	rolw	#8,d1		|this should swap its bytes
	movw	d1,a0@+		|put data back and increment pointer
	dbf	d0,1$		|do it for all data
	rts
