Hi All, I was wondering if my code below can be made to be a bit better. It works fine as is, but just seems to be a bit clunky to me. In a nutshell what I'm doing here is checking two buttons on port A, turning off/on the motor and if one button is pressed, that dictates motor direction. I'm wondering if there's a way without using the temporary register "button_status" to check the the two bits I'm looking at. movlw b'00001100' andwf PORTA,W ;mask all but the RA2,3 bits movwf button_status movlw b'00001100' xorwf button_status,w btfsc STATUS,Z ;are both buttons pressed? goto stopmotor ;yes, stop the motor movlw b'00001100' andwf button_status,w btfsc STATUS,Z ;are both buttons not pressed? goto stopmotor ;yes, stop the motor btfsc PORTA,2 ;check if up button is on goto motorup btfsc PORTA,3 ;check if down button is on goto motordown Regards, Bob -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! email listserv@mitvma.mit.edu with SET PICList DIGEST in the body