mirror of
https://github.com/TomHarte/CLK.git
synced 2024-11-19 23:32:28 +00:00
Perform reload on Disabled -> WaitingForDummyDMA.
This commit is contained in:
parent
7320f96ae7
commit
91b5da06e3
@ -346,6 +346,8 @@ template <> bool Audio::Channel::transit<
|
|||||||
|
|
||||||
period_counter = period; // i.e. percntrld
|
period_counter = period; // i.e. percntrld
|
||||||
length_counter = length; // i.e. lencntrld
|
length_counter = length; // i.e. lencntrld
|
||||||
|
wants_data = true;
|
||||||
|
should_reload_address = true; // i.e. dmasen
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -356,8 +358,8 @@ template <> bool Audio::Channel::transit<
|
|||||||
begin_state<State::PlayingHigh>();
|
begin_state<State::PlayingHigh>();
|
||||||
|
|
||||||
data_latch = data; // i.e. pbufld1
|
data_latch = data; // i.e. pbufld1
|
||||||
wants_data = true;
|
|
||||||
period_counter = period; // i.e. percntrld
|
period_counter = period; // i.e. percntrld
|
||||||
|
wants_data = true;
|
||||||
should_reload_address = true; // i.e. dmasen
|
should_reload_address = true; // i.e. dmasen
|
||||||
// TODO: volcntrld (see above).
|
// TODO: volcntrld (see above).
|
||||||
|
|
||||||
@ -461,7 +463,6 @@ template <> bool Audio::Channel::transit<
|
|||||||
if(!length_counter) {
|
if(!length_counter) {
|
||||||
length_counter = length;
|
length_counter = length;
|
||||||
will_request_interrupt = true;
|
will_request_interrupt = true;
|
||||||
should_reload_address = true; // ???
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -505,6 +506,10 @@ template <> bool Audio::Channel::transit<
|
|||||||
} else {
|
} else {
|
||||||
data_latch = data; // i.e. pbufld2
|
data_latch = data; // i.e. pbufld2
|
||||||
wants_data = true; // AUDxDR
|
wants_data = true; // AUDxDR
|
||||||
|
|
||||||
|
if(length_counter == 1) {
|
||||||
|
should_reload_address = true; // Not sure about this one; based on asterisked comment in ::Disabled documentation.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(dma_enabled && will_request_interrupt) {
|
if(dma_enabled && will_request_interrupt) {
|
||||||
|
Loading…
Reference in New Issue
Block a user