It does not.
There are two standard sources of interval timers for RC2014 systems
- The TMS9918A card can be jumpered to provide a vertical blank (pedantically speaking it interrupts bottom of displayed pixels) which gives you a 60Hz timer
- The Z80CTC cards can provider a timer interrupt but because the CTC expects to be used in IM2 which standard RC2014 does not support it's slightly ugly to set up
And the following less standard cards also provide one
- QUART
- Both of the 2681 derived dual serial cards (XR88C81, 26C92)
- 82C54
- 6522 VIA (but not for Z80 style systems)
The CTC is probably the most flexible. The problem is that there is no direct way to identify the CTC as an interrupt source. What I do in Fuzix therefore is to chain my timer counter with a second one. When I get the interrupt off the first the second tells me how many events I got. The only other gotcha because of the lack of IM2 support is that you must configure all the devices that will assert IM2 vectors to produce the same value or not respond or they will fight on the bus.
If you have an IM2 capable backplane such as the ones from Small Computer Central you can set up the SIO and CTC with IM2 and IEI/IEO chained and it all works as Zilog intended. If you do this and you want to support any non IM2 capable device as an interrupt source you'll run into problems though.
Another trick and one I use with things like Toms SBC and the Retrobrew design that lack an interval timer is to just run an externally generated 8Hz clock into one of the spare modem pins, then use the UART as an interrupt controller. All you need is a can oscillator and a counter. Making an actual interval timer card is slightly more complicated because you need to add an address decoder and a way to generate the IRQ and also be able to read/reset the interrupt event. Still wouldn't be that hard a project.
Alan