Here is the interrupt handler:

Code:
'-------------------------------------------------------------------------------
' Interrupt Handler
'-------------------------------------------------------------------------------
    DISABLE INTERRUPT                        ' No interrupts past this point
Main_Interrupt_Handler:

    '---------------------------------------------------------------------------
    ' PortB.0 Interrupt, Motor RPM Counter
    '---------------------------------------------------------------------------
	IF INTCON.1 = 1 THEN
        IF Calibrating = 1 THEN
            Total_Pulses = Total_Pulses + 1
        ELSE
            IF System_Calibrated = 1 THEN
                New_Position_Counter = New_Position_Counter + 1

                IF New_Position_Counter >= (Pulses_Per_Position + Temp_Pulses) THEN
                    SELECT CASE Current_Direction
                        CASE Forward_Dir
                            Current_Position = Current_Position + 1
                            IF Current_Position > Total_Positions THEN
                                Current_Position = 1
                            ENDIF
                        CASE Reverse_Dir
                            Current_Position = Current_Position - 1
                            IF Current_Position = 0 THEN
                                Current_Position = Total_Positions
                            ENDIF
                    END SELECT

                    DEBUG 13, 10, "[ Position Change ] Current Position: ", DEC Current_Position, 13, 10
                    
                    New_Position_Counter = 0
                    Temp_Pulses = 0
                ENDIF
            ENDIF
        ENDIF
            INTCON.1 = 0
	ENDIF 
    '---------------------------------------------------------------------------


        
    '---------------------------------------------------------------------------
	' PortB.1 Interrupt, Position 1 Sensor
    '---------------------------------------------------------------------------
	IF INTCON3.0 = 1 THEN
        DEBUG 13, 10, "[ INTERRUPT ] Home Position Detected", 13, 10
            Pos1Found = 1
            New_Position_Counter = 0
            Temp_Pulses = 0
            Current_Position = 1
	    INTCON3.0 = 0
	ENDIF
    '---------------------------------------------------------------------------



    '---------------------------------------------------------------------------
    ' PortB.2 Interrupt, Fault Relay Input
    '---------------------------------------------------------------------------
    IF INTCON3.1 = 1 THEN
        DEBUG 13, 10, "[ INTERRUPT ] AC Invertor Fault Detected", 13, 10
        AC_Fault_Detected = 1
        INTCON3.1 = 0
    ENDIF
    '---------------------------------------------------------------------------
    


    '---------------------------------------------------------------------------
    ' USART Receive Interrupt
    '---------------------------------------------------------------------------
    IF PIR1.5 = 1 THEN
        'DEBUG 13, 10, "[ INTERRUPT ] USART Receive", 13, 10

        HSERIN [RS485_B0]

        SELECT CASE RS485_B0
            CASE RS485_STX
                RS485_Receiving_Data = 1
                RS485_Bytes_Received = 0
                FOR i = 1 TO RS485_Buffer_Size
                    RS485_Data_Buffer[i] = 0
                NEXT
                
            CASE RS485_ETX
                RS485_Receiving_Data = 0
                
                RS485_To_Address = RS485_Data_Buffer(0)
                RS485_Command = RS485_Data_Buffer(1)
                RS485_Parameter.HighByte = RS485_Data_Buffer(2)
                RS485_Parameter.LowByte = RS485_Data_Buffer(3)
                RS485_From_Address = RS485_Data_Buffer(4)
                
                RS485_Parameter = RS485_Parameter - 10
                
            CASE ELSE
                IF RS485_Receiving_Data = 1 THEN
                    RS485_Data_Buffer(RS485_Bytes_Received) = RS485_B0
                    RS485_Bytes_Received = RS485_Bytes_Received + 1
                ENDIF
        END SELECT
        PIR1.5 = 0
    ENDIF
    '---------------------------------------------------------------------------

        
IntDone:
	RESUME					' Return to main program
    ENABLE INTERRUPT
'-------------------------------------------------------------------------------