Four timers; two CIA, one raster beam, one NMI?
Still better than PC. PC has three timers: One for firing off program code at an interval, one for refreshing DMA (users can't use this), and one for use as an actual timer that can be read and tied to the speaker and stuff. No video interrupt; no NMI (unless on 286 and higher).
By the way, wouldn't it be possible to write a tightly polling program for the 4.77 MHz IBM PC 5150 that will work on that model but perhaps no other? Yes, people would bitch about it not being compatible with other vintage PCs but the point would be to prove how many samples you could pull from the CPU if it has nothing other to attend to. Compatibility is overrated anyhow. ;-)
Sure, there are very many music programs, at least five completely different techniques for making multi-channel audio through the PC speaker. Most only work on original PC though, so where's the fun in that if others can't run/hear your work?
Also, I'm not sure polling would work on 4.77MHz 8088 through the speaker... I laid in bed last night thinking about it
and came to the conclusion that I'm not sure it could be useful, because the addressable timer in the PC is very fast (compare to the speed of a program) and many hundreds of ticks could go by while the program is doing its thing. Each program instruction costs 2-13 cycles to execute -- and another 4-20 cycles just to read from memory! -- so it wouldn't even be a case of polling, it would be a tight loop with custom "for->next loop"-style waiting instructions for timing.
I have ideas on multi-channel sound generation that I'd like to add to MONOTONE someday; the simplest one, and it should be compatible across all platforms, is to use three registers as square-wave generators; inc each reg by the period, and take the most-significant bit as the state of the speaker. With all three going at once, the speaker will output three simultaneous square waves.
Someday I hope to figure out what Tim Follin was doing on the spectrum -- some of the multi-channel "phasor" output I have STILL not figured out 20 years later...