Tu problema es el compilador CCS, este compilador alienta al usuario a que no toque jamas un registro (distinto a XC8 que es directamente el registro ), y te manejes siempre con las funciones que el provee. entonces para hacer analogo los pines, lo haces con setup_adc_ports (NO_ANALOGS), las interrupciones se habilitan al ultimo, y como ves tampoco es necesario definir PORTA.
#include <idea.h>
#int_RB
void RB_isr(void)
{
output_toggle(PIN_A0);
}
void main()
{
set_tris_a (0); //Configurar el puerto A
set_tris_b (0b11110000); // RB[7 - 4] son entradas
port_b_pullups (true);
setup_adc_ports (NO_ANALOGS); // Lo mismo que ANSEL = ANSELH = 0
enable_interrupts (INT_rb) ;
enable_interrupts (global) ;
while(TRUE)
{
}
}
Otra cosa mas... el compilador CCS por si solo modifica el TRIS a su gusto. es decir, si vos tenes output_high(PIN_B7) a pesar que vos pusiste su TRIS como entrada, el mismo compilador lo va a cambiar a salida, lo mismo si haces un input(PIN) lo cambia a entrada. Para quitar este comportamiento y que solo haga caso a tus TRIS, debes agregar las directivas de preprocesamiento:
#USE FAST_IO(A)
#USE FAST_IO(B)
Para mas informacion podes buscar el manual en PDF de CCS.