... albo prawie 32, w każdym razie powyżej 16.
MyDOS łączy pliki w ten sposób, że w każdym sektorze jest 3-bajtowy "link". Z tego dwa bajty (16 bitów) to numer następnego sektora pliku, a 1 bajt - wypełnienie, czyli liczba bajtów danych w sektorze (od 1 do 253).
Wynikałoby z tego, że przeniesienie tego na sektory 512-bajtowe jest niemożliwe, bo wtedy wypełnienie wynosiłoby od 1 do 509 bajtów, i tym samym braknie jednego bitu, żeby je zakodować (zakładam minimalne możliwe zmiany w kodzie istniejącego MyDOS-a).
Otóż myślę, że ten brakujący bit można byłoby zastąpić najmłodszym bitem numeru aktualnego sektora - tzn. tego, w którym znajdują się dane, a nie tego, który jest wskazany linkiem. Wtedy np. sektory o numerach parzystych mogłyby mieć wypełnienie z zakresu od 1 do 255, natomiast sektory o numerach nieparzystych - wypełnienie od 256 do 509, czyli de facto od 1 do 509.
Ergo, na pełne sektory oraz te z wypełnioną pierwszą połówką można byłoby przeznaczyć połowę takiego dysku, czyli 32768 sektorów 512-bajtowych = 16 MB. A ponadto zostałoby jeszcze drugie 16 MB na sektory z niepełną pierwszą połówką. W sumie, krótkich plików o różnym wypełnieniu ostatniego sektora można byłoby nagrać max. ok. 65535 (pomijam miejsce niezbędne na katalogi, bootbloki, bitmapę itd. - to jest tylko "teoretyczny zarys w miarę szczegółowy" :P), zajmując tym samym całem 32 MB. Im dłuższe pliki, tym wypełnienie partycji pogarszałoby się, ale wiadomo, że pliki na Atari nigdy nie są strasznie długie, więc per saldo byłby zysk => przełamana bariera 16 MB.
Worst case, to jeden plik wielkości 32768 sektorów. Gdy taki zaistnieje na dysku, można dogrywać tylko pliki o wielkości nie przekraczającej 255 bajtów, bo gigant zajmie wszystkie sektory, w których możliwe jest całkowite wypełnienie.
Czy jest gdzieś konkurs na najbardziej posraną koncepcję systemu plików? Może bym coś wygrał :D
? HEX$(6670358)