The Audio State Machine - Commodore Amiga Hardware Reference Manual

Hide thumbs Also See for Amiga:
Table of Contents

Advertisement

The Audio State Machine
For an explanation of the various states, refer to figure 5-8. There is one audio state
machine for each channel. The machine has eight states and is clocked at the system
clock frequency of 3.58 MHz. Three of the states are basically unused and just transfer
back to the idle
(OOO) state. One of the paths out of the idle state is designed for
interrupt-driven operation (processor provides the data), and the other path is designed
for DMA-driven operation (the "Agnus" special chip provides the data).
In interrupt-driven operation, transfer to the main loop (states 010 and 011) occurs
immediately after data is written by the processor. In the 010 state the upper byte is
output, and in the 011 state the lower byte is output.
Transitions such as
010-011-010 occur whenever the period counter counts down to one. The period
counter is reloaded at these transitions. As long as the interrupt is cleared by the pro-
cessor in time, the machine remains in the main loop. Otherwise, it enters the idle state.
Interrupts are generated on every word transition (011-010).
In DMA-driven operation, transition to the 001 state occurs and DMA requests are sent
to Agnus as soon as DMA is turned on. Because of pipelining in Agnus, the first data
word must be thrown away. State 101 is entered as soon as this word arrives; a request
for the next data word has already gone out. When the data arrives, state 010 is
entered and the main loop continues until the HMA is turned off. The length counter
counts down once with each word that comes in. When it finishes, a DMA restart
request goes to Agnus along with the regular DMA request. This tells Agnus to reset the
pointer to the beginning of the table of data. Also, the length counter is reloaded and
an interrupt request goes out soon after the length counter finishes (counts to one). The
request goes out just as the last word of the waveform starts its output.
DMA requests and restart requests are transferred to Agnus once each horizontal line,
and the data comes back about 14 clock cycles later (the duration of a clock cycle is
280 ns).
In attach mode, things run a little differently. In attach volume, requests occur as they
do in normal operation (on the 011-010) transition). In attach period, a set of requests
occurs on the 010-011 transition. 'When both attach period and attach volume are
high, requests occur on both transitions.
If the sampling rate is set much higher than the normal maximum sampling rate
(approximately 29 KHz). the two samples in the buffer register will be repeated. If the
filter on the Amiga is bypassed and the volume is set to the maximum ($40), this feature
can be used to make modulated carriers up to 1.79 MHz. The modulation is placed in
the memory map, with plus values in the even bytes and minus values in the odd bytes.
Audio Hardware 161

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents