Ezen a buffertöltésen gondolkoztam én is ma, de arra jutottam, hogy fix töltőkódok használata nélkül ez lassú lenne, fix töltőkódok használatával meg a program lenne nagyon nagy, itt a fix töltőkódok alatt azt értem, hogy lennének előre definiált, mondjuk 16 bájtot töltő kódvariációk több frekvenciára, de lehet hosszabbak kellenének, amik a sample frekvenciájának függvényében lennének meghívva.
Az a bibi, hogy a DTM lejátszó lejátszó részéből a maximum lett kihozva sebeségügyileg, minden hangcsatorna egy adat kiolvasása memóriából, annak portra kiírása, és 8 bites regiszterekkel a következő adat címének kiszámításából áll, ez 57 órajelciklus, a sallangokkal együtt az egész lejátszó rész 246 órajelciklus úgy emléxem, megszakításos verziót eddig kb 370-re sikerült kihozni, a növekmény 12 órajelciklus csaatornánként az első 3 csatornára, és a negyedikre 32, mert oda az IX regisztert sikerült bevonnom (megpróbálom az elsődleges regiszterkészlet DE-jét, ezzel még 20-at lehet nyerni), és sajnos a megszakítás miatt jön még kb +50 órajelciklus a nem megszakításos verzióhoz képest.
Visszatérve a buffereléshez, a megszakításban egy csatorna ideje lenne 25 órajelciklus, ami 32-vel kevesebb, mint az eredetiben, tehát ennyiből kéne átlagban mefoldani 1 bájt bufferba töltését, vagyis kevesebből ,mert ebből még le kell vonni a megszakítás által felhasznált plusz órajelciklusokat, kb 24 órajelciklus maradna egy bájtra, lehet rossul számoltam, és ezt még tovább csökkentené a lejátszást vezérlő rutin.