.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