September 26, 2003
I have just finished version 2.01. I think timer interrupts are handled properly now, including the possibility to have a timer callback (just one callback, I preferred to keep it simple). Changes from 2.00 are:

* InitMTask() defines the timer interrupt period, from 1 to 55 msecs.
* SetHandler() panics if you try to trap IRQ0. You were not supposed to do it anyway, but it is enforced now.
* There is a new function, GetTime(), that returns the number of milliseconds elapsed since InitMTask().
* There is a new function DelayUntil(), intended for periodic tasks, that puts a task to sleep until some deadline time in the future.
* There is a new function SetTimerCallback() for installing a callback that will be called from the timer interrupt.

I also added a new test program (ptime.exe) for exercising the new features. Internally little has changed in the kernel, except programming the timer frequency and the fact that times are now measured in millisecs instead of ticks.