.TITLE MG07.. GENERAL PROCEDURES IN MACRO ; .IDENT /MG07../ ; ; .PAGE .SBTTL GENERAL PURPOSE REGISTER UTILITY SUBROUTINES R$ GROUP .SBTTL . BIT POSITION INDICATION ROUTINE ; ; ; ; R$BITPOS:: ; ; ENTRY CONDITIONS ; R1 = BIT MASK ; ; EXIT CONDITIONS ; R1 = POSITION OF LOWEST BIT IN MASK IF STATUS = SUCCESS ; MOV R0,-(SP) ;SAVE WORK REGISTER TST R1 ;ARE ANY BITS SET BEQ 20$ ;J IF NO BITS SET CLR R0 ;ASSUME BOTTOM BIT SET 10$: BIT #1,R1 ;IS BOTTOM BIT SET BNE 30$ ;J IF BIT SET INC R0 ;LOOK TO NEXT BIT POSITION ASR R1 ;SHIFT ALL BITS ONE PLACE RIGHT BR 10$ ;TRY NEXT POSITION ; 20$: SETERROR 40$ ;SET ERROR FLAG AND THEN TO RETURN SECTION ; 30$: SETSUCCESS ;INDICATE BIT FOUND 40$: MOV R0,R1 ;HOLD POSITION OF BIT MOV (SP)+,R0 ;RESTORE REGISTER R0 RETURN ;BACK TO CALLING PROGRAM ; ; .END ; ;