The sampling period is limited by the number of dma cycles allocated to an audio channel. Each audio channel is allocated one DMA slot per horizontal scan line of the screen display. An audio channel can retrieve two data samples during each horizontal scan line. The following calculation gives the maximum sampling rate in samples per second. 2 samples/line * 262.5 lines/frame * 59.94 frames/second = 31,469 samples/second The figure of 31,469 is a theoretical maximum. In order to save buffers, the hardware is designed to handle 28,867 samples/second. The system timing interval is 279.365 nanoseconds, or .279365 microseconds. The maximum sampling rate of 28,867 samples per second is 34.642 microseconds per sample (1/28,867 = .000034642). The formula for calculating the sampling period is: sample interval clock constant Period value = --------------- = ------------------ clock interval samples per second Thus, the minimum period value is derived by dividing 34.642 microseconds per sample by the number of microseconds per interval: 34.642 microseconds/sample Minumum period = ------------------------------ = 124 timing 0.279365 microseconds/interval intervals/sample or: 3,579,545 ticks/second Minumum period = ---------------------- = 124 ticks/sample 28,867 samples/second Therefore, a value of at least 124 must be written into the period register to assure that the audio system dma will be able to retrieve the next data sample. If the period value is below 124, by the time the cycle count has reached 0, the audio DMA will not have had enough time to retrieve the next data sample and the previous sample will be reused. 28,867 samples/second is also the maximum sampling rate for PAL systems. Thus, for PAL systems, a value of at least 123 ticks/sample must be written into the period register . Clock Values ------------ NTSC PAL units ---- --- ----- Clock Constant 3579545 3546895 ticks per second Clock Interval 0.279365 0.281937 microseconds per interval NOTE: ----- The Clock Interval is derived from the clock constant, where: 1 clock interval = -------------- clock constant then scale the result to microseconds. In all of these calculations "ticks" and "timing intervals" refer to the same thing.