@czietz na Atari-Forum.com po analizie problemu DMA (szczegóły w linku poniżej) doszedł do wniosku że błędu zapisu można uniknąć w prosty programowy sposób. Nie ma więc potrzeby wymiany ani DMA ani CPU.
Szczegółowy opis błędu i rozwiązanie: ->link<- www.chzsoft.de/site/hardware/new-atari-ste-bad-dma-investigation/
Wątek na AF: ->link<- atari-forum.com/viewtopic.php?p=446002#p446002
Tak pokrótce, 'BAD DMA' to jedna z wersji układu DMA o numerze C025913-38. Była ona montowana w ST i wczesnych STE. W ST i większości STE układ C025913-38 działał poprawnie, jednak w niektórych STE dane były źle zapisywane na dysk twardy, odczyt był poprawny. Do tej pory jedynym znanym rozwiązaniem była wymiana w STE albo DMA na nowszą wersję albo procesora na wersję HC.
Atari zalecało by zapis do rejestrów DMA przez procesor był 32bitowy ("move.l") a nie 16bitowy ("move.w"), ze względu na jakiś błąd w układzie C025913-20 montowanym w pierwszych ST. Otóż @czietz odkrył że w przypadku niektórych C025913-38 w STE, zapis 32bitowy powoduje błąd przy zapisie danych na HDD. Wystarczy więc robić zwykły 16bitowy zapis rejestrów DMA by dane były poprawnie zapisywane na HDD. Wystarczy więc odpowiednio poprawić sterowniki dysków.
No w końcu ktoś przeanalizował problem. Tyle lat powielania błędnych informacji, tyle osób szukających "lepszych DMA" :D. Gratulacje dla autora analizy i dzięki Cyprian za popularyzowanie wiedzy. Z Ciebie taki "pogromca mitów" ST/STE :D
@Peri Noid no na razie to musimy poczekać aż większa ilość osób potwierdzi lub nie czy rozwiązanie czietza działa. Na razie sprawdził STE osób które się do niego zgłosiły.
Z tego co wiem to na razie tylko jeden się wypowiedział, czekamy jeszcze na autora HD Drivera. Oba sterowniki są płatne, myślę więc że może to być czynnikiem który sprawi że poprawią co trzeba.
Z darmowych, to sterowniki w EmuTOS są poprawione (był pomysł aby był on również jako osobny program), no i dodatkowo dostępne są źródła innego świetnego sterownika - AHDI. Więc w razie czego jest wybór.
Ja bym wolał, żeby udało się precyzyjnie wytłumaczyć powód i na jego podstawie zrobić poprawkę. Czyli wyjaśnić przyczynę obserwując objawy ale i co tam jeszcze się da. Bo tutaj, mam wrażenie, to nadal jest paczowanie skutków przez obserwację objawów ale bez wyjaśniania przyczyn.
myślę że właśnie to zrobił,- sprawdził, znalazł rozwiązanie i opisał, oczywiście dotyczy to tego szczególnego błędu nazwanego "Bad DMA" czyli STE i C025913-38.
Z tego co czytałem/słyszałem to są inne problemy z DMA (i nie tylko) np w ST, które mogą wynikać chociażby z wieku sprzętu, ale to zupełnie inna bajka.
Nie do końca skoro nie w każdym przypadku C025913-38 to się objawia. To może być do pewnego stopnia loteria, co nie pomaga w żaden sposób. No ale trzymam kciuki, żebym nie miał racji ;-)
Nie przyjął tłumaczenia. Ja od siebie dodam, że naprawiałem STe @Mayoneza, który wykazywał problem z bad DMA. I w nim zamieniliśmy kość "z tej drugiej" właśnie na na C025913-38. I problem ustąpił. A to świadczy o czymś zupełnie innym, odwrotnym do tezy, że to wina kości. Bo skoro zakładamy złą kość, która naprawia dobrą to coś zdecydowanie nie trzyma się kupy.
Dlatego podtrzymuję tezę, że nie zdiagnozowano przyczyny a jedynie ogarnięto efekt w pewnych warunkach. Tylko nadal nie wiadomo precyzyjnie, co to za warunki.