	.TITLE	IRAM - BIT ROTATION ROUTINE
	.IDENT	/V001/
;
;	NAME: IRAM
;
;	LANGUAGE:  VAX-11 MACRO
;
;	OPERATING SYSTEM:  DEC VAX/VMS
;
;	ORDER NUMBER:  5448-SE
;
;	PART NUMBER:  000-025522-001  OCTOBER 1985
;
;	PRODUCT:  DEC VAX/VMS VERSAPLOT COLOR RANDOM 2.0
;
;	VERSATEC, INC., SANTA CLARA, CALIFORNIA 95051
;	A XEROX COMPANY
;
;	Copyright (C) 1985 by Xerox Corporation.  All rights reserved.
;
;	"NOTICE. THIS PROGRAM IS THE EXCLUSIVE PROPERTY OF VERSATEC,
;	INC. AND IS ISSUED IN STRICT CONFIDENCE UNDER A PREARRANGED
;	LICENSE AGREEMENT AND IS NOT TO BE DISCLOSED IN ANY MANNER TO
;	PERSONS OUTSIDE THE LICENSED ORGANIZATION AND SHALL NOT BE
;	REPRODUCED OR DISSEMINATED, IN WHOLE OR PART, TO ANYONE OUTSIDE
;	THE LICENSED ORGANIZATION WITHOUT THE PRIOR WRITTEN APPROVAL OF
;	VERSATEC, INC. UNLESS OTHERWISE PROVIDED FOR BY SUCH LICENSE
;	AGREEMENT.  THIS WORK IS PROTECTED AS AN UNPUBLISHED WORK UNDER
;	THE COPYRIGHT ACT OF 1976."
;
;
;
;	ENTRY:	MWORD = IRAM (IWORD,NBITS,MASK)
;			IWORD	- LONG WORD TO BE ROTATED
;			NBITS	- # OF BIT POSITIONS TO ROTATE
;				- - LEFT ROTATE
;				- + RIGHT ROTATE
;			MASK	- BITS TO MASK OFF
;			RESULT	- IWORD AFTER ROTATE AND MASK
;
;	EXIT:	IWORD RETURNED ROTATED AND MASKED
;
;
;	IRAM CALLED BY:	SYMBOL,SPOT,GRID
;	CALLS:	NONE
;
;
	.PSECT	$CODE,PIC,SHR,NOWRT,LONG
;
;
;	INTEGER FUNCTION IRAM (IWORD,NBITS,MASK)
;
;
	.ENTRY	IRAM,^M<>
	MNEGL	@8(AP),R1		;NEGATE ROTATE BIT COUNT
	ROTL	R1,@4(AP),R0		; ROTATE IWORD
	MCOML	@12(AP),R1		;COMPLEMENT MASK
	BICL2	R1,R0			;CLEAR UN-NEEDED BITS
	RET
	.END
