Pana Gustav03, no tienes nada que agradecer y con lo que puedas contribuir de ejemplos en este curso que lleva a cabo Modulay se te agradecera muchisimo y mas las personas que lo llevan a cabo.
Por otro lado, asi como esta tu codigo tiene un error, no has puesto el ; del bucle infinito. corrigiendo eso, debe de correr la interrupcion de B0, como es un switch este debe de lleva forzosamente un pullup o pull down(ya que no usas las pullups que trae por defaul el micro y te ahorrarian la resitencia extra en todo el puerto b)
Como especificaste en tu codigo va a cambiar SOLO de High to Low, es decir en estado estable(boton abierto) debe de tener un 1 logico para que SOLO cuando se oprima el boton(se cierre el circuito) este lo lleve a tierra(0 logico) y se lleve a cabo la interrupcion.... vasta de charla y solo tienes que poner un resistencia de 10k del pin b0 a vcc y del pin b0 a a tierra atraves del boton.
TU CODIGO

con solo #INT_EXT )
#include <16F84A.h>
#fuses XT,NOWDT
#use fast_io(A)
#use delay( clock = 4000000 ) /* reloj de 4 MHz */
#byte puerto_b = 06 /* dirección del puerto B */
#byte puerto_a = 05 /* dirección del puerto A */
#int_EXT
EXT_isr()
{//CODIGO DE LA INTERRUPCION RB0
delay_ms( 500 );
bit_set( puerto_a, 1 );
delay_ms( 500 );
bit_clear( puerto_a, 1);
}
//#int_RB
//EXT_isr2()
//{//CODIGO DE LA INTERRUPCION RB4..RB7
//delay_ms( 200 );
//bit_set( puerto_a, 2 );
//delay_ms( 200 );
//bit_clear( puerto_a, 2);
//}
void main( void )
{set_tris_b( 0b11111111 ); /*Todas entradas!!*/
set_tris_a( 0b11111000 ); /*a0-a2 salidas*/
puerto_b = 0;
puerto_a = 0;
enable_interrupts(INT_EXT);
//enable_interrupts(INT_RB);
//ext_int_edge(H_TO_L);
enable_interrupts(GLOBAL);
disable_interrupts(INT_RTCC); /*lo pongo para probar */
disable_interrupts(INT_TIMER0); /*lo pongo para probar */
while (TRUE)
{delay_ms( 200 );
bit_set( puerto_a, 0 ); /*a0=1*/
delay_ms( 200 );
bit_clear( puerto_a, 0); /*a0=0*!*/
}; /*;<-------lo que faltaba*/
}