Code:
'****************************************************************
'*  Name    : Test RDT Interrupt for one-time use                   
'*  Author  : Dick Ivers                                                         
'*  Notice  : Copyright (c) 2011                                             
'*          : All Rights Reserved                                              
'*  Date    : 1/30/2011                                                         
'*  Version : 1.0                                                                   
'*  Notes   : 112 words                                                         
'*  Device  : 16F1828                                                           
'****************************************************************
'set configurat1on
@  __config _CONFIG1, _FOSC_HS & _MCLRE_ON & _CLKOUTEN_OFF & _WDTE_ON
@  __config _CONFIG2, _PLLEN_OFF & _LVP_OFF

'set registers
    ANSELA = 0           'all digital inputs
    ANSELB = 0           'all digital inputs
    ANSELC = 0           'all digital inputs
    OPTION_REG.7 = 0     'global pullups enabled
    CM1CON0.7 = 0        'comparator1 off
    CM2CON0.7 = 0        'comparator2 off
    TRISA = %110         'set porta pin 0 as output
    TRISB = %11111111    'set all portb pins as inputs
    TRISC = %11000000    'set portc pins 0,1,2,3,4,5 as output
    WPUA = %110          'porta pins 1,2 pullups enabled 
    WPUB = %11110000     'portb pin pullups enabled

    INTCON = %10001000   'global int enabled, IOCI enabled, IOCI flag bit 0 clr
    IOCAF.1 = 0          'flag bit for porta int pin 1 cleared
    IOCAN = %00000010    'porta pin 1 enabled for negative change


    DEFINE OSC 16         '16 Mhz oscillator
    DEFINE INTHAND RDT

    portc.3 = 1           'turn off beeper

'declare variables
    LED VAR PORTC.5
    j   var byte 
     
    LED = 0      'flash red LED for 0.5 sec to check circuit function
    pause 500
    LED = 1
    
    pause 2000    'delay 2 seconds    

Main:
  gosub beep            'play beep for 1/8 second
  PAUSE 1000            '1 second delay
  GOTO Main

ASM
RDT                     
  BCF   IOCAF,IOCAF1   ;clear IOCA negative change interrupt flag
  BCF   INTCON,3       ;disable interrupt on change by clearing INTCON bit 3
  BCF   PORTC,5        ;turn on led solid 
  RETFIE               ;return to main
ENDASM
 
beep:   for j =1 to 240      'buzzer sound for 1/8 second
        portc.3 = 0          'buzzer on
        pauseus 180          '2.73 khz half period
        portc.3 = 1          'buzzer off
        pauseus 180          '2.73 khz half period
        next 
        return

halt:   END