X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Flib%2Fds390%2Ftinibios.c;h=13f87e12ca7c42d641e8910e30b008b4aa7902f2;hb=ccaa1364f24ea0207b04e628c45f4ca2ff3e5083;hp=6be2f3671752a84271140ae3f306deeb756fd603;hpb=a0d014d8408eed17d997ef6d34e254c9b5a3776b;p=fw%2Fsdcc diff --git a/device/lib/ds390/tinibios.c b/device/lib/ds390/tinibios.c index 6be2f367..13f87e12 100755 --- a/device/lib/ds390/tinibios.c +++ b/device/lib/ds390/tinibios.c @@ -487,37 +487,34 @@ void ClockInit() { // This needs to be SUPER fast. What we really want is: #if 0 -void ClockIrqHandler (void) interrupt 1 { +void junk_ClockIrqHandler (void) interrupt 10 { TL0=timer0ReloadValue&0xff; TH0=timer0ReloadValue>>8; milliSeconds++; } #else // but look at the code, and the pushes and pops, so: -#pragma EXCLUDE b,dpl,dph,dpx -void ClockIrqHandler (void) interrupt 1 { +void ClockIrqHandler (void) interrupt 1 _naked +{ _asm + push acc + push psw mov _TL0,_timer0ReloadValue mov _TH0,_timer0ReloadValue+1 - mov a,#0x01 - add a,_milliSeconds+0 - mov _milliSeconds+0,a - jnc _ClockIrqHandlerDone - clr a - addc a,_milliSeconds+1 - mov _milliSeconds+1,a - jnc _ClockIrqHandlerDone - clr a - addc a,_milliSeconds+2 - mov _milliSeconds+2,a - jnc _ClockIrqHandlerDone clr a - addc a,_milliSeconds+3 - mov _milliSeconds+3,a + inc _milliSeconds+0 + cjne a,_milliSeconds+0,_ClockIrqHandlerDone + inc _milliSeconds+1 + cjne a,_milliSeconds+1,_ClockIrqHandlerDone + inc _milliSeconds+2 + cjne a,_milliSeconds+2,_ClockIrqHandlerDone + inc _milliSeconds+3 _ClockIrqHandlerDone: + pop psw + pop acc + reti _endasm; } -#pragma EXCLUDE NONE #endif // we can't just use milliSeconds