1
0
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:
Thomas Harte 2021-12-04 19:17:40 -05:00
parent 7320f96ae7
commit 91b5da06e3

View File

@ -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) {