Hi Matthew, How about this : movlw b'11100000' ; portA initialization (just example) bsf STATUS,RP0 movwf TRISA ^ 0x080 movlw b'00000111' ; PortB initialization (just example) movwf TRISB ^ 0x080 bcf STATUS,RP0 Regards, Harry "Fansler, David" wrote: > Mathew - I think your trouble is in these subroutines - I have modified them > - > InitPortA > BSF STATUS,RP0 ; Select bank 1 > MOVLW 0 ; Clears w register > MOVWF TRISA ; Set port a as outputs > BCF STATUS,RP0 ; Select page 0 > MOVWF PORTA > RETURN > > ;-------------------------------------------------------------------------- > InitPortB > BSF STATUS,RP0 ; Select bank 1 > MOVLW 255 ; > movwf TRISB ; Set port a as outputs > bcf STATUS,RP0 ; Select page 0 > RETURN > > Also I noticed that in your Loop, at the end you are calling Loop - this > will cause a stack overflow. You should do a "goto Loop" instead > Loop > MOVF PORTB,w ; Read Portb into w register > MOVWF PORTA ; Move W into Porta > BTFSC W,7 ; If bit 7 is set goto Chase > CALL Chase > GOTO Loop > > You might want to go back and examine the reset of your code to make sure > you are in the correct bank, and calling the register by it's name in that > bank. > > David > > -----Original Message----- > From: Mathew Cohen [mailto:mathew@EVERYTHINGIT.NET] > Sent: Friday, October 15, 1999 10:44 AM > To: PICLIST@MITVMA.MIT.EDU > Subject: Troubles specifing banks with 16f84 > > Hey > > I am getting an error with the following asm file. The error says that the > register that I am trying to access is in a different bank can someone help. > >