cześć chłopaki i dziewczyny!

sory, że znów piszę, ale na forum nuda, to niech się coś dzieje...

mam pytanie do debugujących romy stacji dyskietek do atari (słyszało się tu trochę o TOMS i SN360)...

od czasu dyskusji o bitrate minęło "kilkanaście pdfów"... ale nie wyjaśniły one wszystkiego...

w jaki sposób w tych stacjach odbywa się rozpoznawanie gęstości dyskietki?

wszyscy piszą, że ustawiasz format i próbujesz czytać...

o ile z 90k, 130k i 180k właściwie to może się udać o tyle z 180k, 360k i 720k to już się nie uda... co się dzieje gdy dyskietkę sformatowaną w 720 przeformatujemy na 360 - sektory takie same, a parzyste cylindry pozostaną... no i jak rozpoznać? to samo z 360 i 180, sektory takie same, a druga strona 360 pozostaje po przeformatowaniu na 180...

HELP!

śmieszne jest to, że żadna ze znanych mi stacji nie rusza głowicą w czasie rozpoznawania formatu... czyli wszystko można wywnioskować z 1 cylindra... tylko jak?

2 Ostatnio edytowany przez pik33 (2010-11-05 17:58:04)

Normalnie :) Próbujesz, dopóki się nie uda. Nie robiłem tego na atari, bo za mało wtedy byłem zaawansowany w takiej zabawie, ale później z kolegą zrobiliśmy "wynalazek" do peceta. Przerobiony kontroler dyskietek pisał do  2.2 MB na dyskietkach "gęstych" i do 1.2 MB na "rzadkich", tych 360 KB.

Trzeba było do tego zrobić rozpoznawanie formatu, więc sterownik po prostu próbował. Ustawiał po kolei różne kombinacje parametrów kontrolera i czytał boot sektor dopóki czegoś nie odczytał, albo nie skończyły mu się te kombinacje. Wtedy wychodził z błędem.

Jak odczytał, to miał przynajmniej długość sektora i gęstość zapisu.

czyli wszystko można wywnioskować z 1 cylindra... tylko jak?

Poza tym, z tego co pamiętam, to niezależnie od tego, jaki jest format dyskietki, pierwsze 3 sektory w Atari mają zawsze 128 bajtów w standardowym formacie. Analizując ich zawartość powinno dać się określić, jak dalej czytać tę dyskietkę.

Ot, przykład:

http://atariki.krap.pl/index.php/Format_SpartaDOS

3

pik33 napisał/a:

Poza tym, z tego co pamiętam, to niezależnie od tego, jaki jest format dyskietki, pierwsze 3 sektory w Atari mają zawsze 128 bajtów w standardowym formacie.

Niestety, mylisz się. W DD te sektory mają (fizycznie) po 256 bajtów.

Analizując ich zawartość powinno dać się określić, jak dalej czytać tę dyskietkę.

I tak i nie. "Analizą zawartości" powinien zająć się DOS. Ale nie stacja dysków. Pomijając już, że większość atarowskich DOS-ów zapisuje tam tylko kod bootloadera (czyli analiza zawartości zda się psu na budę), i przyjmując idealistyczne założenie, że wszystkie dyskietki są w formacie SpartaDOS, nie da się niestety z parametrów zapisanych w sektorze nr 1 odczytać gęstości, gdyż te parametry nie mówią nic o fizycznym formacie dyskietki, tylko o formacie logicznym. Mówiąc prościej, nic nie stoi na przeszkodzie, żeby w sektorze nr 1 dyskietki 720k były zapisane parametry jak dla dyskietki 180k.

@bezrobotny:

Mogę coś przeoczyć, bo kontrolerem WD 1772 (i pokrewnymi) bawiłem się ostatnio około 15 lat temu. Niemniej wydaje mi się, że odróżnienie dyskietki 360k od takiej, która z 360k została przeformatowana na 180k, nie jest możliwe. Z drugiej strony, jeśli logiczny format jest 180k, a fizyczny 360, to nic nie szkodzi, DOS i tak nie zapisze więcej danych niż pozwala informacja zapisana na dyskietce (np. bitmapa), więc stacja spokojnie sobie może myśleć, że to jest 360k, DOS wie swoje w tym przypadku.

Ogólnie algorytm rozpoznawania gęstości polega na próbach odczytu nagłówków sektorów w kolejnych obrotach dyskietki. Kiedyś sobie to rozpisywałem i zdaje się, że w ośmiu obrotach powinno dać się zidentyfikować wszystkie gęstości. Np. jeśli w FM nie czyta się nic, to gęstość jest MFM. Jeśli w MFM odczytasz ze ścieżki 0 sektor nr 26, to to jest gęstość średnia. Jeśli nie, to podwójna. Dalej, jeśli masz podwójną na stronie A, to sprawdzasz odczyt ze strony B. Itd.

KMK
? HEX$(6670358)

4

bezrobotny napisał/a:

śmieszne jest to, że żadna ze znanych mi stacji nie rusza głowicą w czasie rozpoznawania formatu... czyli wszystko można wywnioskować z 1 cylindra... tylko jak?

Bardzo prosto.

Kontrolery WD maja komende READ ADDRESS (0xc0)  ktora czyta naglowek pierwszego napotkanego pod glowica sektora i
zwraca 6 bajtow z ktorych mozesz bez pudla wywnioskowac jaka dyskietka jest wlozona.
Format tych bajtow i ich znaczenie jest opisane w pdf ktorego juz podobno przeczytales 10 razy :P

5 Ostatnio edytowany przez bezrobotny (2010-11-06 17:25:40)

nie da się tak ustalić formatu, te dane (6 bajtów) jest w sumie bezwartościowa - mogę wkleić kawałek PDFa, ale pewnie każdy zna... dlatego może wypowiedział by się Ktoś kto próbował rozszyfrowywać firmware SN-360/TOMSa?

P.S.
ale faktycznie zamiast odczytywać 1 można czytać 26 sektor i tak rozpoznawać, nie rozwiąże to jednak problemu 180/360/720...

P.S.2
chociaż jeśli przy formatowniu ustawiany jest w ID odpowiedni cylinder to może i by się dało rozpoznać 360 od 720... reszta to ciągle magia...

P.S.3
nie widzieliście gdzieś może spisu wszystkich formatów dyskietek atari? może coś da się z tego wywnioskować...

P.S.4
wklejam - może Ktoś na coś wpadnie przy oglądaniu fotek:
http://henku.ayz.pl/formaty_dyskietek.PNG

http://henku.ayz.pl/format_fizyczny.PNG

6

bezrobotny napisał/a:

nie rozwiąże to jednak problemu 180/360/720...

Chłop swoje, czort swoje...

KMK
? HEX$(6670358)

7

podaj jakiś przykład sprawdzenia

8

Przeczytaj post nr 3. Nie pierwsze zdanie każdego akapitu, nie co drugi czy piąty wyraz, tylko CAŁOŚĆ.

KMK
? HEX$(6670358)

9

tu mnie złapałeś, przeczytałem, ale o 180/360/720 nic...

10

To może jeszcze pomyśl chwilę.... jeśli to nie za duży wysiłek.

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

11 Ostatnio edytowany przez mikey (2010-11-06 19:47:04)

...

12

z myśleniem to u mnie ciężko, może Ktoś by mi podpowiedział?

13

"nie ma rączek - nie ma ciasteczek"

Hitler, Stalin, totalniak, SSman, NKWDzista, kaczor dyktator, za długo byłem w ChRL, wypowiadam się afektywnie.

14

szkoda, no ale zapytać zawsze można.

15

A co to jest 180/360/720 ???

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

16

:)

to samo co 90/130 :)

17 Ostatnio edytowany przez Pecus (2010-11-07 23:13:16)

I tu się mylisz - to zupełnie co innego :)
Niech bezrobotny pomyśli czym różnią się wymienione przez niego formaty i jak w 3 obrotach dyskietki rozpoznać każdy z nich...
90/130 różnią się czymś zgoła innym :P

Bla bla bla bla, bla bla bla. Bla bla bla - bla - bla. Blabla bleee.

18

Hasło-klucz: FM/MFM ?

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

19

drac030 napisał/a:

Niemniej wydaje mi się, że odróżnienie dyskietki 360k od takiej, która z 360k została przeformatowana na 180k, nie jest możliwe.

Tak, należy na to uważać i formatować też drugą stronę (po przekręceniu).

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

20 Ostatnio edytowany przez drac030 (2010-11-08 17:43:00)

To zależy od stacji, a ściślej, od przyjętego przez nią sposobu realizacji 360k. W formacie XF551, gdzie stacja zapisuje najpierw stronę A, a potem stronę B, ewentualne rozpoznanie 180k jako 360k nic nie szkodzi. W formacie takim jak w Karin Maxi, no owszem, szkodzi. Byłaby to jedna z zalet metody formatowania użytej w XF.

KMK
? HEX$(6670358)

21

wracając do punktu wyjścia, ani TOMS ani SN-360 nie ma kłopotów z rozpoznaniem po pierwszym cylindrze formatów (wszystkich nie tylko 180/360/720) - Ktoś tu debugował romy, nie mógłby się wypowiedzieć?

22 Ostatnio edytowany przez drac030 (2010-11-08 17:59:43)

SN-360 nie ma formatu 720k, stąd i brak "kłopotów".

Co do TOMS-a, cóż, sam jestem ciekaw metody odróżniania 360k od 720k bez ruszania głowicą. Bo tak na oko trzeba zrobić co najmniej przejazd na ścieżkę nr 2. Albo zapisywać na ścieżkach jakieś znaczniki podczas formatowania; to wykluczałoby wprawdzie zgodność formatu z innymi stacjami, ale też w ogóle istnieją w obiegu dyskietki 720k inne niż zapisane przez stacje TOMS 710/720?

Słowem: trzeba wziąć dyskietki sformatowane na TOMS-ie, jedną 360k, drugą 720k, ściągnąć z nich cały cylinder nr 0 i porównać.

KMK
? HEX$(6670358)

23

drac030 napisał/a:

ale też w ogóle istnieją w obiegu dyskietki 720k inne niż zapisane przez stacje TOMS 710/720?

Karin Maxi.

Sikor umarł...

24

na tym się pewnie skończy, myślałem, żeby spróbować odczytać cały cylinder w stacji od PC, ze względu na względną łatwość programowania zestawu stacja + PC...

a może Ktoś widział gdzieś tool do PC ściągający całą ścieżkę z flopa?

25

Sikor napisał/a:
drac030 napisał/a:

ale też w ogóle istnieją w obiegu dyskietki 720k inne niż zapisane przez stacje TOMS 710/720?

Karin Maxi.

No i co, TOMS 720 prawidłowo rozpoznaje dyskietki sformatowane w karince na 720k? Bez ruszania głowicą?

KMK
? HEX$(6670358)