Artykuły

    DOSa wy(z)wód konieczny cz. 1

    Jak sam tytuł artka wskazuje zajmiemy się najciekawszym wy(z)wodem pod słońcem. Problemem pewnego chłopa o swojskim imieniu Dos. A chorował on na wstydliwą choróbkę zwaną skądinąd "bez standardzie".

    Jeśli nie załapałeś dotychczas o czym pisze poniżej, to już tłumaczę Ci łopatologicznie. Miałeś problem z odczytem czy zapisem dyskietki? Twój ATR nie chodzi pod MyDos?em? Dyskietkę w medium czyta tylko Twój dos? Otóż nie ma standardu, mimo obietnic autorów przeróżnych dosów. To dlaczego to wszystko jeszcze "chodzi"? Odpowiedź banalna: programiści atari są najlepsi czyli ofkoz the best!

    Tyle dłuuuugiego wstępu. Mam nadzieje, że poniższe dane przydadzą się do stworzenia lepszego dosu (mam na myśli dosu dla "twardzieli" ? HD).

    Opiszę jedynie Dos 2.0, Dos 2.5, Dos II, X-Dos, oraz My-Dos i tylko w single, medium i double. No bo tyle dobrze poznałem pisząc plugina dla Windows Commandera.

    "Czyj ci on": jak rozpoznać dyskietkę = który dos formatował

    Pierwszy sektor i pierwszy bajt prawie na 100% określa pochodzenia nośnika (wartości w hex):

        00   Dos 2....       dla single i medium
        00   Dos II          dla double
        C4   Dos II
        X    X-Dos   (to odmiana Dos II)
        M    MyDos
        S    Sparta Dos  lub  BW-Dos

    Jednak nie zawadzi sprawdzić w pierwszym sektorze czy nie ma napisu:

        Error: No DOS     Sparta
        BW-DOS            BW- Dos

    Później sprawdzamy także sektor 360 ($168) czyli VTOC i jego pierwszy bajt:

        02   Dos 2...
        03   Dos II lub X-Dos (także MyDos dla medium)

    "Kato(logo)wać się chciało": jak czytać wpis katalogu

    Główny katalog mieści się zawsze w sektorze 361 ($169) i zajmuje zawsze osiem sektorów nawet dla double. W każdym sektorze mieści się 8 wpisów po 16 bajtów. Przy double dla kompatybilności druga połówka sektora 256 bajtowego jest pusta! Osiem sektorów po osiem wpisów daje 64 pozycje na:

        0       status wpisu
        1-2     ilość sektorów zajętych przez plik
        3-4     numer pierwszego sektora zajętego przez plik
        5-12    osiem znaków nazwy pliku
        13-15   trzy znaki rozszerzenia nazwy pliku

    Wyjaśnienia wymaga jeno status wpisu (ustawiony bit oznacza)

        Bity            Dos 2...               Dos II                MyDos
        1               nie-dostępny[1]        nie-zamknięty[2]      nie-zamknięty[2]
        2               plik                   plik                  plik
        4               -                      -                     plik
        8               -                      -                     -
        16              -                      -                     katalog
        32              zabezpieczony          zabezpieczony         zabezpieczony
        64              plik                   plik                  plik
        128             skasowany              skasowany             skasowany

    objaśnienia:

    [1] nie-dostępny dla Dos 2.0 (zajmuje sektory 721-1010)

    [2] nie-zamknięty przy zapisie (plik uszkodzony)

    "Wiela wolnych sektorów" dowiecie się z VTOC

    VTOC który zaczyna się na sektorze 360 ($168) a kończy na (!!!) 359 ($167) lub 1024 ($400).

    To najmniej ciekawy fragment struktur dosów. Problem oczywiście jest z medium. Single i double zawsze zajmuje tylko sektor 360 ($168)!

    Dla wszystkich dosów pierwsze 10 bajtów sektora 360 oznacza:

       0        status VTOC
       1-2      maksymalna liczba wolnych sektorów
       3-4      ilość obecnie wolnych sektorów (dla medium Dos 2.5 sektorów 1-719)
       5        zabezpieczenie przed zapisem dysku (?)
       6-9      wolne

    Dalsze bajty to bitowa rozspiska wolnych sektorów, bit skasowany oznacza zajętość. Dla 720 sektorów przy single i double wystarczy 90 bajtów. Dla medium potrzeba 130 bajtów i tu zaczynają się ?schody?. Dos 2.5 wykorzystuje sektor 1024 ($400) dla kontynuacji VTOC, a Dos II i MyDos sektor 359 ($167).

    Sektor 1024 ($400) dla Dos 2.5 to kopia sektora 360 ($168) od bajtu 16 do 127 z tym, że bajt 123 i 124 ($7A-7B) zawiera ilość wolnych sektorów o numerze 720 ? 1010.

    Sektor 359 ($167) dla Dos II i My-Dos ma tylko kontynuacje (to nie kopia) rozpiski wolnych sektorów 944-1009 dla Dos II i 944-1027 dla MyDos.

    Należy pamiętać, że sektor 0 nie istnieje (we VTOC bajt 10 bit 1 zawsze skasowany), a w medium sektor 720 dla Dos 2.5 jest nie wykorzystywany (we VTOC bajt 101 bit 8 zawsze skasowany)!

    Jak idzie zauważyć każdy dos ma inną maksymalną ilość wolnych sektorów. Jednak istnieje wartość graniczna liczby wszystkich sektorów. Dla single i double jest to 720, a medium 1040.

               Dos 2    Dos II   MyDos
    single      707      707      708
    medium     1010     1009     1027
    double        -      707      708

    Poniżej schematyczny wypis VTOC po sformatowaniu dyskietki dla każdego dosu.

    Single Dos 2...

                0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
    00         02  C3  02  C3  02  00  00  00  00  00  0F  FF  FF  FF  FF  FF 
    10         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF 
    20         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF 
    30         FF  FF  FF  FF  FF  FF  FF  00  7F  FF  FF  FF  FF  FF  FF  FF   standardowo zajęte 9 sektorów
    40         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF   na VTOC i katalog
    50         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF 
    60         FF  FF  FF  FF  00  00  00  00  00  00  00  00  00  00  00  00 
    70         00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00

    Single lub Double DosII

                0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
    00         03  C3  02  C3  02  00  00  00  00  00  0F  FF  FF  FF  FF  FF 
    10         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF 
    20         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF 
    30         FF  FF  FF  FF  FF  FF  FF  00  7F  FF  FF  FF  FF  FF  FF  FF 
    40         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF 
    50         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF 
    60         FF  FF  FF  FF  00  00  00  00  00  00  00  00  00  00  00  00 
    70         00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00

    Single lub Double MyDos

                0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
    00         02  C4  02  C4  02  00  00  00  00  00  0F  FF  FF  FF  FF  FF 
    10         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF 
    20         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF 
    30         FF  FF  FF  FF  FF  FF  FF  00  7F  FF  FF  FF  FF  FF  FF  FF 
    40         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF 
    50         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF 
    60         FF  FF  FF  FF  80  00  00  00  00  00  00  00  00  00  00  00   sektor 720 używany 
    70         00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00

    Medium Dos 2...

                     0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
            /   00  02  F2  03  C3  02  00  00  00  00  00  0F  FF  FF  FF  FF  FF 
     360   |    10  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  00  \    
    $168   |    20  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  10  |
           |    30  FF  FF  FF  FF  FF  FF  FF  00  7F  FF  FF  FF  FF  FF  FF  FF  20  |  1024
           |    40  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  30  |  $400
           |    50  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  40  |
           |    60  FF  FF  FF  FF  7F  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  50  |  sektor 720
            \   70  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  60  |  nieużywany
                FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  2F  01  00  00  00  00  70     /

    Medium DosII Sektor 360 $168

                0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
    00         03  F1  03  F1  03  00  00  00  00  00  0F  FF  FF  FF  FF  FF 
    10         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF 
    20         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF 
    30         FF  FF  FF  FF  FF  FF  fe  00  7F  FF  FF  FF  FF  FF  FF  FF   zajęte 10 sektorów 
    40         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF   sektor 359 to druga część
    50         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF   VTOC
    60         FF  FF  FF  FF  7f  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF   sektor 720 nie używany
    70         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF 

    Medium DosII Sektor 359 $167

    00         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  00  00  00  00  00  00

    Medium MyDos Sektor 360 $168

                0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
    00         03  03  04  03  04  00  00  00  00  00  0F  FF  FF  FF  FF  FF 
    10         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
    20         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  
    30         FF  FF  FF  FF  FF  FF  fe  00  7F  FF  FF  FF  FF  FF  FF  FF   sektor 359 to druga część
    40         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF   VTOC 
    50         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
    60         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF   sektor 720 używany
    70         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  

    Medium MyDos Sektor 359 $167

    00         FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  80  00  00  00   ostatni sektor 1040

    "Linki poprowadzą cię" do końca pliku

    Ostatnie trzy bajty sektora zawierają LINK prowadzący do następnego sektora na dysku. Oznacza to, że w sektorze może być 125 lub 253b. Zależnie od dosu bajty te mają (!) podobne znaczenie.

    bajt:          Dos 2..       Dos II i MyDos 
    125-126        [1]           nr następnego sektora
    253-254         -            jw. 
    127            [2]           ilość bajtów w sektorze, może być wartość: 1-125
    255             -            ilość bajtów w sektorze, może być wartość: 1-253

    objaśnienia:

    [1]        ---125---||---126----       
                 7654321076543210
                 [#pliku][#sektora]
    
    #pliku:     nr pliku zgodny z pozycją w katalogu (0-63)
    #sektora:   nr następnego sektora
    
    [2]        76543210
               S[-ilość-]
    
    S:         status zakończenia pliku = 1 oznacza koniec
    -ilość-    ilość bajtów w sektorze, może być wartość: 125 lub 1-124

    Aby oznaczyć koniec pliku wstawia się zero jako numer sektora, dodatkowo Dos 2 ustawia bit statusu "S".

    "Koniec nastąpi niebawem" artka ofkoz...

    Na zakończenie należy napisać, że istnieją dwa inne formaty MyDos?a: 360 i 720kB. Inne wielkości dyskietek powstają także za pośrednictwem tego dosu, ale są mało powszechne.

    Wspomnę, że starsze wersje Mydos?a dla dysków większych od double wykorzystują cały sektor 256b na katalog.

    Komentarze gości atari.area

    Momencik, uaktualniam...  

    Nie jesteś zalogowany. Tylko zarejestrowani i zalogowani użytkownicy mog± dodawać komentarze.

Lotharek.pl
Retronics

Szukaj

Wyszukiwarka przeszukuje zasoby atari.area, atariki oraz forum.

Twoliner

Momencik, uaktualniam...  .

Pamiętaj, żeby linki do Twolinera dodawać wyłącznie po skróceniu za pomocą serwisu tiny.pl. Jeśli coś Ciebie ominęło - skorzystaj z archiwum.

Network

konto

Nie jesteś zalogowany. Zaloguj się lub załóż konto

forum

Artykuły

Wywiady

Allegro

Jako, że Allegro.pl jest bardzo często odwiedzanym serwisem przez Atarowców, umiejscowiłem poniżej wyszukiwarkę produktów związanych z naszym kochanym Atari. Chcesz coś kupić - wystarczy wpisać w okienko poniżej.


Wystarczy wpisac czego szukamy i po chwili znajdujemy sie juz na Allegro.pl.