loop:
andlw PORTB_buffer, b'00001111' ;clear bits 4-7
andlw PORTA_buffer, b'11110000' ;clear bits 0-3
btfss PORTB,0
bsf PORTB_buffer,7
bsf PORTA_buffer,0
btfss PORTB,1
bsf PORTB_buffer,6
bsf PORTA_buffer,1
btfss PORTB,2
bsf PORTB_buffer,5
bsf PORTA_buffer,2
btfss PORTB,3
bsf PORTB_buffer,4
bsf PORTA_buffer,3
movf PORTB_buffer, W ;copy to working register
movwf PORTB ;copy working register to PORTB
movf PORTA_buffer, W ;copy to working register
movwf PORTA ;copy working register to PORTA
goto loop