rozpoznawanie formatów fdd

Oct 24, 2010 24 Replies

mam jeszcze jedno pytanko do specjalistów z tej grupy, jak odbywa się rozpoznawanie formatów dyskietek przez kontrolery?



Ktoś mi kiedyś napisał, że czytasz jakiś format i sprawdzasz czy się przeczyta...



ale...



to nie jest takie proste, weźmy na przykład 720kB i 360kB...



pierwszy ma 80 drugi 40 ścieżek, jeśli sformatujemy czystą dyskietkę to może i w.w. sposobem uda się rozpoznać, ale jeśli sformatujemy dyskietkę która miała format 720kb na 360 kb, to na parzystych ścieżkach zostaną sektory, więc w.w. sposób zawiedzie...



jak poprawnie zrobić takie rozpoznanie gęstości?


Użytkownik "identifikator: 20040501" snipped-for-privacy@go2.pl napisał w wiadomości news:ia183n$qen$ snipped-for-privacy@mx1.internetia.pl...

W dyskietkach są jeszcze wycięcia które decydują o tym czy dyskietka jest np. 720KB czy 1,44MB.

Marek

Pan Marek napisał:

Te wycięcia, to sprawa odrębna -- mówią o tym, jaką maksymalną pojemność

*może* mieć dyskietka. Związane są z własnościami materiału magnetycznego użytego do produkcji dyskietki. Ale dyskietka oznaczona jako 1,44MB może być sformatowana na 720MB.

Żeby dowiedzieć się wszystkiego o formacie dyskietki, wystarczy przeczytać pierwszy sektor. W nim są zawarte informacje na temat organizacji pozostałej części. Z tym że rozpoznawaniem zajmuje się nie kontroler, a komputer. Kontroler musi natomast rozpoznać długość sektora (bo wcale nie musi mieć on 512 bajtów). Ale z tym nie ma problemu.

Swoją drogą ciekawe jest, jaki ma sens zadawanie takich pytań. Jeśli ktoś nie ma pojęcia o formacie danych na dyskietce (a są to rzeczy powszechnie dostępne), to po co mu rozpoznawanie, z którym to nieznanym mu formatem akurat ma do czynienia?

W czasach DOSu używałem programu FDRead. Umożliwiał on uzyskanie pojemności

1,72MB na dyskietkach 1,44. Aby system zobaczył dyskietkę 1,72MB należało najpierw wczytać ten program i można było korzystać z dyskietek 1,72 Kiedyś przez przypadek odkryłem że wystarczy wgrać program FDRead w odpowiednie miejsce na dyskietce, aby można go było odczytać pomimo że w systemie nie był wczytany FDRead. Wczytanie FDRead powodowało że reszta dyskietki stawała się dostępna. Morał z tego że kontroler nie do końca kontroluje pojemność dyskietki. Funkcja Biosu 13h/08h podaje parametry stacji dysków, nie dyskietki. Chyba, że użyć funkcji 13h/17h (13h/18h) - ustaw typ dyskietki do formatowania. Funkcja zwraca rodzaj dyskietki.

Użytkownik "Jarosław Sokołowski" snipped-for-privacy@lasek.waw.pl> napisał w wiadomości news: snipped-for-privacy@falcon.lasek.waw.pl...

Chyba w BIOSie kazdego PCta są podstawowe funkcje i obsługa przerwań do tych celów.

Marek

aż zaglądnąłem do pdfa... nie ma żadnego bajtu mówiącego o formacie dyskietki, fotosik:

formatting link
no więc jak to jest, poza tym problem o którym pisałem, 720 czy 360 kb albo

360 czy 180 kb?

poza tym fizyczna struktura dyskietki formalnie jest nieosiągalna z poziomu procesora, tym zajmuje się fdc... teraz to już zupełny kosmos...

Ale w pecetach masz boot sektor z podanym formatem.

A twoej pierwsze watpliwosci .. pamietam jeszcze "czemu nie nalezy zapisywac dyskietek 360k w napedzie 1.2M"

J.

a to czemu? chyba można, jedynie nie da się zapisać 360 na dyskietce HD, też nie wiem czemu?

No przeciez sam pisales - glowica tam waska, nie wiadomo czy skutecznie skasuje stary, szeroki zapis. Zeby bylo smieszniej to naped 1.2 odczyta co zapisal, problemy moga byc z napedami 360kB.

Wyzsza koercja materialu wymagajaca wyzszych pradow ?

P.S. Macie jakis pomysl jak namagnesowac dyskietki ? Wlasnie sobie pomyslalem ze mozna by uzyc jako tarcze enkoderow, tylko najpierw trzeba namagnesowac, a potem sprawdzic czy jakis czujnik to odczyta :-)

J.

identifikator: 20040501 starał się napisać (ale słabo się starał):

Jest tak, jak można było się spodziewać i jak zawsze jest w podobnych sytuacjach -- jeśli ktoś ma aż takie trudności z pisaniem, to i z czytaniem u niego zwykle nietęgo (to już komputer do spółki z kontrolerem radzą sobie lepiej -- przeczytają pierwszy sektor i wiedzą wszystko bez zaglądania do pedeefa).

Jarek

no cóż trudno, już nic lepiej nie pisz w tym wątku

Pan J.F napisał:

Namagnesować tym, co będzie odczytywać, czyli głowicą stacji. W inne rozwiązenia niebardzo wierzę. To namagnesowanie cienkiej warstwy magnetycznej nie może być specjalnie silne -- nawet lekko zabrudzona głowica, która niedokładnie przylega do powierzchni dyskietki, ma problem z odczytaniem. Coś mi się ten cały pomysł słaby wydaje.

Albo cos tu nie tak, albo wpisywales go w boot sektor. Pecet/MSDOS nie mial zwyczaju czytac i uruchamiac programow z dyskietki w sposob nieproszony - za wyjatkiem startu systemu.

Zeby nie powiedziec ze prawie wcale. Wpisujesz co chcesz, a robi co kazales, albo zglasza blad ze sie nie udalo. Zakres ma bardzo szeroki.

Jeszcze po drodze stoi BIOS i moze przeszkadzac, o ile sie go uzywa.

Ale jak sie obsluguje HD to juz nie wiem - jakos musieli to dokleic.

J.

Użytkownik "J.F." <jfox snipped-for-privacy@poczta.onet.pl> napisał w wiadomości news: snipped-for-privacy@4ax.com...

Coś mi się wydaje że najlepszym enkoderem to będzie jak ją podziurkujesz :)))

Marek

a swoj± drog± to ciekawe zjawisko, o co by cz³owiek nie zapyta³ to zawsze dostaje standardow± odpowied¼ "skoro nie mo¿esz sam znale¼æ to znaczy, ¿e nie powiniene¶ zajmowaæ siê tym tematem"...

chyba popisy moderatorów elektrody przesz³y na grupê... ale idzie nowe... ju¿ nied³ugo...

Czujnikiem hallotronowym ? :-)

Poki sie nie sprawdzi to sie czlowiek nie dowie. Ale sprawdzenie trzeba zaczac od namagnesowania :-)

J.

Pan J.F napisał:

O halotronowych głowicach do taśm magnetycznych gdzieś czytałem, ale na żywo nie widziałem. W każdym razie taką co normalnie jest w stacji namagnesować się da.

Machnąć magnesem neodymowym i popatrzeć co na takie namagnesowanie powie czujnik halotronowy. Czarno to widzę.

Pan J.F napisał:

I jeszcze do tego system by musiał chyba startować z takiej dyskietki. Bo normalnie, w uruchomionym systemie, z całego bootsectora czytana jest tylko tablica BPB z danymi o formacie. Tak mi się przynajmniej wydaje.

Ja używałem często w stacji 1,2M dyskietek 360k formatowanych na 800k. Nie było to żadnym nadużyciem -- stacja 1,2M miała dwa razy więcej ścieżek niż 360k, co daje już 720k, a miejsce na dziesiąty sektor i tak się na nośniku marnowało. Tyle że pomimo informacji w BPB na temat struktury i mimo możliwości technicznych stacji, goły system nie rozpoznawał takich dyskietek. Trzeba go było na żywca patchować programem rezydentnym (np. 800.com, ale ten FDRead może robił to samo).

identifikator: 20040501 napisał:

Trochę się ten wątek rozgałęził, zahaczył o mniej trywialne kwestie, więc z tym "lepiej" jest inaczej.

Akurat w tym wątku od razu padła odpowiedź na postawione pytanie (o sposób rozpoznawania formatu dyskietki).

A co się zmieni i kiedy konkretnie?

Jarek

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required