Can't get IOC on pin change working
Code:
#CONFIG
    __config _CONFIG1, _FEXTOSC_OFF & _RSTOSC_HFINT32 & _CLKOUTEN_OFF & _CSWEN_OFF & _FCMEN_ON
    __config _CONFIG2, _MCLRE_ON & _PWRTE_OFF & _LPBOREN_OFF & _BOREN_ON & _BORV_LO & _ZCD_OFF & _PPS1WAY_OFF & _STVREN_ON & _DEBUG_OFF
    __config _CONFIG3, _WDTCPS_WDTCPS_11 & _WDTE_ON & _WDTCWS_WDTCWS_7 & _WDTCCS_LFINTOSC
    __config _CONFIG4, _WRT_OFF & _SCANE_available & _LVP_OFF
    __config _CONFIG5, _CP_OFF & _CPD_OFF
#ENDCONFIG


DEFINE OSC 32


include    "DT_INTS-14.bas"
include    "ReEnterPBP.bas"


ASM
INT_LIST  macro      ;IntSource,  Label,    Type, ResetFlag?
        INT_Handler  IOC_INT,    _IOCinterrupts,    PBP,  yes
    endm
    INT_CREATE                      ;Creates the interrupt processor
ENDASM


INTCON = 000000
'          bit 7  GIE        Global Interrupt Enable bit
'                                  1 = Enables all active interrupts
'          bit 6  PEIE        Peripheral Interrupt Enable bit
'          bit 5-1    Unimplemented: Read as ‘0’
'          bit 0  INTEDG      Interrupt Edge Select bit


PIE0 = 010000    ' PERIPHERAL INTERRUPT ENABLE REGISTER 0
'          bit 7-6 Unimplemented: Read as ‘0’
'          bit 5 TMR0IE: TMR0 Overflow Interrupt Enable bit
'          bit 4 IOCIE: Interrupt-on-Change Interrupt Enable bit
'                                  1 = Enables the IOC change interrupt
'          bit 3-1 Unimplemented: Read as ‘0’
'          bit 0 INTE: INT External Interrupt Flag bit


IOCCP = 010000  ' INTERRUPT-ON-CHANGE PORTC POSITIVE EDGE REGISTER
'          bit 7-0 IOCCP<7:0>  Interrupt-on-Change PORTC Positive Edge Enable bits
'                                  1 = Interrupt-on-Change enabled on the pin
'                                      for a positive-going edge. IOCCFx bit
'                                      and IOCIF flag will be set upon detecting an edge.


IOCCN = 000000  ' INTERRUPT-ON-CHANGE PORTC NEGATIVE EDGE REGISTER
'          bit 7-0 IOCCP<7:0>  Interrupt-on-Change PORTC Negative Edge Enable bits
'                                  1 = Interrupt-on-Change enabled on the pin
'                                      for a Negative-going edge. IOCCFx bit
'                                      and IOCIF flag will be set upon detecting an edge.


ANSELA = 000000
ANSELB = 000000
ANSELC = 000000
ANSELD = 000000
ANSELE = 000000


TRISA = 000000
TRISB = 000000
TRISC = 010000
TRISD = 000000
TRISE = 000000


PushSwitch      VAR PortC.4
InterruptLED    VAR LatC.2
HeartbeatLED    VAR LatC.3


ButtonWasPressed VAR byte


    Pause 500                                      ' Let PIC and LCD stabilize
    InterruptLED = 0
    ButtonWasPressed = 0


    IOCCF.4 = 0
   
@ INT_ENABLE IOC_INT
       
    goto Mainloop


IOCinterrupts:
    if IOCCF.4 = 1 then
        ButtonWasPressed = 1                        ' set a flag
        IOCCF.4 = 0
    endif
@ INT_RETURN


Mainloop:
    if ButtonWasPressed = 1 then                    ' Check flag
        InterruptLED = 1
    endif


    HeartbeatLED = 1
    pause 500
    HeartbeatLED = 0   
    pause 500
   
    goto mainloop
end
InterruptLED never lights up when I press PushSwitch, and the HeartbeatLED seems to hang for 2-3 seconds when I press.