/*-------------------------------------------------------------------
    Timer 1 is implemented as a software RTC. overflows every 50 ms
    with 11.0592 MHz
    increments global soft_RTC_ticks which gives relative time in 
    seconds since the system was booted. accurate enough for now.
--------------------------------------------------------------------*/
void timer_1_interr(void) interrupt 3// using 2
{
    static unsigned char data multiplier = 0;    //this many times slower
    TR1 = 0;
    TF1 = 0; //present_keypress = 0;
    if(++multiplier == 20)
    {    multiplier = 0;
        soft_RTC_ticks++;
    }
    TH1 = SOFT_RTC_TH1_RELAOD;    //relaod timer 1
    TL1 = SOFT_RTC_TL1_RELAOD;    //decided from hit-n-trial
    TR1 = 1;
}