!int main(void) {
!    OSCCON = 0x0046;
0x2BC: MOV #0x46, W0
0x2BE: MOV W0, OSCCON

!    OSCCON = 0x0057;
0x2C0: MOV #0x57, W0
0x2C2: MOV W0, OSCCON

!    OSCCONbits.IOLOCK = 0;
0x2C4: BCLR OSCCON, #6
!    
!    PORTA = 0;
0x2C6: CLR PORTA

!    LATA = 0;
0x2C8: CLR LATA

!    TRISA = 0xFFFF;
0x2CA: SETM W0
0x2CC: MOV W0, TRISA
!     
!    PORTB = 0;
0x2CE: CLR PORTB

!    LATB = 0;
0x2D0: CLR LATB

!    TRISB = 0xFFEF;
0x2D2: MOV #0xFFEF, W0
0x2D4: MOV W0, TRISB
!    
!    RPOR2 = 0x0012;
0x2D6: MOV #0x12, W0
0x2D8: MOV W0, RPOR2
!    
!    PR2 = 460;
0x2DA: MOV #0x1CC, W0
0x2DC: MOV W0, PR2
!    
!    OC1RS = 0;
0x2DE: CLR OC1RS

!    OC1R = 0;
0x2E0: CLR OC1R

!    OC1CON = 0x0006;
0x2E2: MOV #0x6, W0
0x2E4: MOV W0, OC1CON

!    TMR2 = 0;
0x2E6: CLR TMR2
!    
!    T2CON = 0x0010;
0x2E8: MOV #0x10, W0
0x2EA: MOV W0, T2CON

!    T2CONbits.TON = 1;
0x2EC: BSET 0x111, #7
!    
!    while(1)
!    {
!	do
!	{
!	    OC1RS ++;
0x2EE: MOV OC1RS, W0
0x2F0: INC W0, W0
0x2F2: MOV W0, OC1RS

!	    __delay_ms(6);
0x2F4: MOV #0x5DC0, W0
0x2F6: MOV #0x0, W1
0x2F8: RCALL __delay32

!	}while(OC1RS <= 461);
0x2FA: MOV OC1RS, W1
0x2FC: MOV #0x1CD, W0
0x2FE: SUB W1, W0, [W15]
0x300: BRA LEU, 0x2EE
!	
!	do{
!	    OC1RS --;
0x302: MOV OC1RS, W0
0x304: DEC W0, W0
0x306: MOV W0, OC1RS

!	    __delay_ms(6);
0x308: MOV #0x5DC0, W0
0x30A: MOV #0x0, W1
0x30C: RCALL __delay32

!	}while(OC1RS >= 461);
0x30E: MOV OC1RS, W1
0x310: MOV #0x1CC, W0
0x312: SUB W1, W0, [W15]
0x314: BRA GTU, 0x302