Artykuły

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

    Druga część artka o dosach będzie czysto teoretyczna. Chciałbym przybliżyć założenia na temat dosa obsługującego dyski twarde poprzez EIDE. Aby nie komplikować życia koderom założenia powinny ułatwiać a nie zaciemniać kod.

    Ze względu na brak oprogramowania do HD nowy dos powinien jak najbliżej nawiązywać do standardu Dos II. To pozwoli napisać proste emulatory. Ponadto, należy być w założeniach dalekosiężnym wybiegając w przyszłość, aby nie zamknąć rozwoju nowego dosu!

    Założenia:

    Dyski EIDE posiadają bufor minimum 512b. To wyklucza zastosowanie bezpośrednie standardu Dos II. Dlatego też możemy zrezygnować z adresowania 2-bajtowym na rzecz 4-bajtowego.

    Sektory:

    $0001-$0003  boot
    $0004-$0167  wolne.
    $0168        VTOC główny
    $0169-$0170  katalog główny
    $0171-$0FFF  wolne
    $1000-       VTOC HD 
    dalej wolne....

    BOOT sektory są znane nam wszystkim, pierwszy sektor będzie miał w pierwszy bajcie literę "H".

    Dysk twardy powinien dać się boot?ować oraz musimy mieć możliwość jednoznacznego rozpoznania HD.

    VTOC główny pozostaje dla kompatybilności z Dos II (wykorzystywane 128 z 512!)

           0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
    00    03  00  00  00  00  00  10  00  01  00  00  00  00  00  00  00 
    10    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00 
    20    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
    30    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
    40    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
    50    00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00
    60    00  00  00  00  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
    bajt: 0 oznaczenie dosu = 3 1-2 zawsze = 0 3-4 zawsze = 0 5-7 numer pierwszego sektora dla VTOC HD 8-9 ilość sektorów przeznaczonych na VTOC HD

    Pozostawienie VTOC w sektorze $168 pozwala obsługiwać HD przez programy nie przystosowane do tego celu. Wszystkie sektory są dla nich zajęte - co uniemożliwia zapis, jednak pozwoli wyświetlić katalog!

    Katalog główny oraz podkatalogi wykorzystują dwa bloki 128 bajtowe z 512b sektora.

    bajty:
    000-127  katalog A
    128-255  puste
    256-383  katalog B
    384-511  puste

    Katalogi posiadają 8 wpisów po 16b każdy. Katalog B jest uzupełnieniem katalogu A.

    katalog A, bajty:
    0          status
    1          - plik uszkodzony
    2          - plik
    4          - wolny
    8          - wolny
    16         - katalog
    32         - zabezpieczony
    64         - plik      
    128        - skasowany
    
    1-4        długość pliku określona w sektorach
    5-15       name.ext pliku
    katalog B, bajty:
    0           status m.in. bajtów 5-15
    = 64        zapis tylko daty  dd:m:rr
    = 128       zapis tylko czasu  gg:mm:ss
    = 192       zapis daty i czasu  dd:m:rr gg:mm:ss
    = 1-63      w pierwszym sektorze pliku ile bajtów zajmuje długa nazwa pliku
    
    1-4         numer pierwszego sektora pliku
    5-6         dzień utworzenia pliku
    7           miesiąc
    8-9         rok
    10-11       godzina
    12-13       minuta
    14-15       sekunda

    Bajty 5-15 katalogu B zawierają datę i czas utworzenia pliku w formacie atascii, aby przyspieszyć wyświetlanie katalogu. Jednak, co do ich zastosowania nie jestem do końca pewny...

    Uważam, że podział katalogu na dwie części, pierwszej zgodnej z Dos II i drugiej umożliwiającej obsługę HD ułatwi operacje Rename, Lock, Unlock, i wszelkich przeszukiwań nazwy pliku, czy też prostej komendy Dir.

    VTOC HD zawiera dane nt. wolnych sektorów na twardzielu.

                     0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
    000             48  00  00  20  00  00  00  1F  FF  F2  01  00  00  00  00  04 
    010             0F  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  zajęte sektory 1-3
    020             FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
    030             FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  zajęte 9 sektorów 
    040             FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
    050             FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
    060             FF  FF  FF  FF  7f  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  sektor 720 nie używany
    070             FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF
    080             FF itd
    1F0             cd. FF  FF  FF
    
    bajt:
    0          litera ?H?
    1          wolne
    2-5        maksymalna ilość wolnych sektorów
    6-9        obecna ilość wolnych sektorów
    10-11      ilość sektorów przeznaczonych na VTOC HD
    12-15      pierwszy wolny sektor na HD
    16-....    bitowy plan wolnych sektorów

    Na następne tablice VTOC HD przeznaczone zostaną kolejne sektory dysku.

    Ilość sektorów VTOC HD zależy od wielkości dysku twardego!!!!

    Bajty 12-15 określają pierwszy sektor wolny przeznaczony do zapisu (na początku równy 4). Dzięki temu możemy uniknąć czasochłonnego przeszukiwania tabeli VTOC HD w celu odnalezienia wolnego sektora. Bajty te są oczywiście aktualizowane po zapisie. Licznik ten może być tylko zwiększany aż do przepełnienia (dzięki czemu skasowany plik nawet dawno temu można zawsze odzyskać), lub też aktualizowany w przypadku kasowania pliku.

    LINKI sektorów. Link znajduje się w ostatnich 6 bajtach sektora 512b.

    $1FA-1FB  ilość bajtów w sektorze
    $1FC-1FF  link do nastepnego sektora (gdy = 0 oznacza ostatni sektor)

    Zastosowanie 6 bajtów na link ułatwi emulatorom przekład 512 bajtowe sektory na dwa 256b.

    TO TYLE. Jak widzicie na podstawie Dos II można oprzeć prosty i skomplikowany zarazem system obsługi dysku twardego. Jeśli etapowo nastąpi rozwój Dos II poprzez obsługę 1MB, katalogów a potem HD można wywnioskować piękną przyszłość nowego dosu. Tylko kto się tego podejmie???

    Komentarze gości atari.area

    Momencik, uaktualniam...  

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

Lotharek.pl
Retronics
Grawitacja 2024
Lost Party 2024
Silly Venture 2024 SE

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.