1 Ostatnio edytowany przez Cyprian (2025-07-21 09:10:30)

@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:
https://www.chzsoft.de/site/hardware/ne … stigation/

Wątek na AF:
https://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.

ATW800/2 / Atari V4sa / Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
SUB/AVGcart / FujiNet / DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

2

Hej Cyprian,

No rewelacja. To jest tak nieoczywiste, że aż strach :) Super, że Christian wpadł na rozwiązanie tego problemu.

Pozdrawiam
tOri

Różne różności dla Atari i nie tylko - przydatne, bądź nie ale i tak warto zajrzeć...
http://atari.myftp.org  Atari - Power without price and necessary elements with some sh*t onboard
https://reversing.pl SSL enabled site

3

Zobaczymy czy to faktycznie będzie działać u wszystkich.
Na razie z tego co widziałem to nie było łatwo znaleźć do testów STE ze złym DMA.

ATW800/2 / Atari V4sa / Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
SUB/AVGcart / FujiNet / DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

4

Cyprian napisał/a:

Do tej pory jedynym znanym rozwiązaniem była wymiana w STE albo DMA na nowszą wersję albo procesora na wersję HC

Czy z tym HC to rzetelnie potwierdzona teoria? Czy tylko gdzieś jednej osobie to przypadkiem zadziałało, choć może przy okazji wprowadził na raz więcej zmian i w sumie nie wiadomo co pomogło, ani czy u innych jest to powtarzalne?

Cyprian napisał/a:

Wystarczy więc odpowiednio  poprawić sterowniki dysków.

Czy U.Seimet i P.Putnik zadeklarowali prace na poprawkami? Ciekawe czy poprawią wsteczne wersje, czy trzeba będzie zapłacić za nowe.

Moje skany czasopism i książek z epoki: https://chomikuj.pl/uicr0Bee ; https://archive.org/details/@uicr0bee
Potrzebujesz dyskietki? Proszę: http://www.atari.org.pl/forum/viewtopic.php?id=18887
<-- Kontakt prywatny proszę przez "E-mail", a nie "PW".

5 Ostatnio edytowany przez Cyprian (2023-04-23 12:15:15)

uicr0Bee napisał/a:

Czy z tym HC to rzetelnie potwierdzona teoria? Czy tylko gdzieś jednej osobie to przypadkiem zadziałało, choć może przy okazji wprowadził na raz więcej zmian i w sumie nie wiadomo co pomogło, ani czy u innych jest to powtarzalne?

Parę osób zgłaszało poprawę jakości zapisu DMA, ktoś też zgłaszał pojawiający się błąd w docyklowanych demach. Więc nie do końca jest to 100% rozwiązanie.


uicr0Bee napisał/a:

Czy U.Seimet i P.Putnik zadeklarowali prace na poprawkami? Ciekawe czy poprawią wsteczne wersje, czy trzeba będzie zapłacić za nowe.

na dzień dzisiejszy trzeba sprawdzić skuteczność pracy @czietz. Myślę że jeśli zostanie ona potwierdzona, to obaj poprawią swoje sterowniki, gdyż nadal je rozwijają. Uwe regularnie bywa/bywał na liście Hatari.

No ale jak będzie to zobaczymy.

ATW800/2 / Atari V4sa / Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
SUB/AVGcart / FujiNet / DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

6 Ostatnio edytowany przez Cyprian (2025-07-21 09:26:34)

Ciekawy wpis o 'naprawie' tzw  'BAD DMA' softwareowo:
https://atariscne.org/news/index.php/at … n-software

I jeszcze tu:
https://www.pouet.net/prod.php?which=104445
For those not in the know. Earlier Atari STe dma chips had some different behaviour in certain cases than the later chips. For a long time these earlier chips were deemed 'bad' dma. Only recently due to decapping and analysis of the chip the community found out the subtle hardware difference between the two versions. As a result, by using the 'bad' dma chip version in an other way (in code) it turns out the chip behaves as intended. This release contains a binary patch for one of the better known hard disk drivers for the Atari, such that this hard disk driver now also works correctly with the 'bad' dma. And thus, we achieve DMA bliss!

https://www.chzsoft.de/site/hardware/ne … stigation/
This investigation has found the root cause of the bad DMA phenomenon – hopefully ending years of speculation and guesswork:
* The errors while writing to an ACSI disk in some STEs with the old C025913 DMA IC are caused by borderline timing of the RDY signal between DMA and GSTMCU, which in turn causes some bytes not to be written to the disk. This corrupts the disk’s contents.
* The newer C398739 DMA IC is not just better by chance but does indeed contain a specific fix for this problem: a change in the timing of the RDY signal.
* The previously published workarounds (replacing the CPU, replacing the power supply, changing pull-up resistors), while potentially beneficial to a particular machine, are just a short-term fix for a much deeper problem
* There is a potential software workaround, which should be further investigated and validated.

ATW800/2 / Atari V4sa / Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
SUB/AVGcart / FujiNet / DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org

7 Ostatnio edytowany przez Cyprian (2025-07-23 21:54:23)

Nowy opis:
https://atariscne.org/news/index.php/st … ftware-fix

https://www.youtube.com/watch?v=Rad3SEyWLSo

ATW800/2 / Atari V4sa / Lynx I / Mega ST 1 / 7800 / Portfolio / Lynx II / Jaguar / TT030 / Mega STe / 800 XL / 1040 STe / Falcon030 / 65 XE / 520 STm / SM124 / SC1435
SUB/AVGcart / FujiNet / DDD HDD / AT Speed C16 / TF536 / SDrive / PAK68/3 / Lynx Multi Card / LDW Super 2000 / XCA12 / SkunkBoard / CosmosEx / SatanDisk / UltraSatan / USB Floppy Drive Emulator / Eiffel / SIO2PC / Crazy Dots / PAM Net
http://260ste.atari.org