	.TITLE	BITMOV
	.IDENT	'VAXA01'
;
;LAST MODIFIED BY J.A.BECK 8/82
;   PSECT CHANGED FROM PIC,SHR,NOEXE,NOWRT TO CURRENT
;   OF PIC,SHR,EXE,NOWRT,RD,LCL,REL
;
;
; FORTRAN CALLABLE ROUTINE TO MOVE A BIT STRING (LESS THAN ONE WORD)
;
; CALLING SEQUENCE
;
;    CALL BITMOV(IWRD1,IPOS1,NBIT,IWRD2,IPOS2)
;       IWRD1 = WORD CONTAINING BITS TO BE MOVED
;       IPOS1 = STARTING BIT POSITION IN IWRD1
;       NBIT = NUMBER OF BITS TO MOVE
;       IWRD2 = WORD TO MOVE BITS TO
;       IPOS2 = STARTING POSITION IN IWRD2

;  IPOS1, NBIT, AND IPOS2 ARE ASSUMED INTEGER*4.
;  IWRD1 AND IWRD2 MAY BE OF ANY TYPE COMPATIBLE WITH POSITION/LENGTH.
;  IPOS1 AND IPOS2 MAY BE ANY VALUE (-32768 TO 32767).
;  NBIT MAY BE 0 THROUGH 31.

;  COMPATIBILITY NOTE:  FOR PDP 11/70 VERSION, CERTAIN COMBINATIONS OF
;  POSITION AND SIZE (REFERENCE OUTSIDE WORD BOUNDRIES) WOULD BE IGNORED.
;  THE VAX VERSION IS NOT RESTRICTED TO WORD (OR LONGWORD) BOUNDRIES.

;			R.P.MILLION, G-2575, 237-8034

W1=4;	DEFINE
P1=8;	 ARGUMENT
N=12;	  OFFSETS
W2=16
P2=20

	.PSECT	$CODE,PIC,SHR,EXE,NOWRT,RD,LCL,REL
	.ENTRY	BITMOV,0

	EXTZV	@P1(AP),@N(AP),@W1(AP),R0	; GET THE BITS
	INSV	R0,@P2(AP),@N(AP),@W2(AP)	; PUT 'EM AWAY
	RET

	.END
