Autor Wątek: Formaty dyskietek  (Przeczytany 21130 razy)

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Formaty dyskietek
« dnia: 2019.01.26, 23:00:22 »
Spoko.
Ja nie miałem stacji DD, nic na takie nie pisałem. Trochę by mi zajęło przećwiczenie jak czytać, jak sprawdzać SD/DD, itd.
To akurat całkiem proste. Dla TOS dyskietka DD to dyskietka mająca 160 ścieżek z jednostką alokacji 4k (zauważ że żadna z funkcji TOS nie ma opcji wyboru strony dyskietki)
A informacja o gęstości dyskietki jest zapisana w pierwszym sektorze (bajt $0e)
Machines should work. People should think.

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Formaty dyskietek
« Odpowiedź #1 dnia: 2019.01.26, 23:25:04 »
Wyjdę na czepialskiego (jak zawsze zresztą), ale dla porządku:

• TOS 140KB to SSDD (single-sided double density),
• TOS 620KB to DSQD (double-sided quad density).

Wiem, wiem - formatowanie z literką "d" na końcu jest mylące :)

Z kolei single density oznacza zapis z modulacją FM, dający pojemność o połowę mniejszą niż stosowany przez TOS zapis MFM. Ze względu na kompatybilność wsteczną WD1770 obsługuje FM, ale wiadomo, że MFM jest lepszy.

Jednostki alokacji - jak słusznie steev rzecze - to 4KB dla TOS 620KB (oraz 1KB dla TOS 140KB).

Z innych (być może przydatnych) informacji, w formacie dwustronnym (620KB) numeracja jednostek alokacji jest naprzemienna (raz strona 0, raz strona 1). Zmniejsza to szuranie głowicą w te i wewte przy odczycie i zapisie pliku zapisanego w kolejnych jednostkach alokacji.

Schodząc o piętro niżej bliżej sprzętu, sektory na ścieżce (TOS) mają numery logiczne różne od numerów kolejnych, bo "skaczą" co 7. Taki zabieg pozwala szybciej przeczytać całą ścieżkę, gdy procesor nie jest za szybki i nie ma DMA. Dla odmiany timexowy i polbritowy CP/M 2.2 "skacze" modulo 5, zachowując ten sam schemat organizacyjny dyskietki oraz strukturę katalogu, z dokładnością do numeru i rozmiaru ścieżki z katalogiem oraz brakiem folderów, które są zastąpione "userami" (tzn. chronologicznie było odwrotnie - foldery TOS zastąpiły userów CP/M).

Ergo - dałoby się napisać narzędzie (raczej i zwłaszcza pod CP/M), które w miarę automatycznie rozpoznaje, jaka dyskietka jest włożona i pozwala przenosić pliki między systemami.

Oczywiście w CP/M 2.2 nie ma programu START, przynajmniej nie w prosty sposób.
« Ostatnia zmiana: 2019.01.26, 23:52:03 wysłana przez trojacek »

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Formaty dyskietek
« Odpowiedź #2 dnia: 2019.01.27, 02:56:23 »
Dla odmiany timexowy i polbritowy CP/M 2.2 "skacze" modulo 5, zachowując ten sam schemat organizacyjny dyskietki oraz strukturę katalogu, z dokładnością do numeru i rozmiaru ścieżki z katalogiem oraz brakiem folderów, które są zastąpione "userami" (tzn. chronologicznie było odwrotnie - foldery TOS zastąpiły userów CP/M).
Jeśli 'timexowy' to ten z FDD, to niezupełnie.
Katalog zaczyna się na ścieżce '2' a nie '4'.
Inne jest też znaczenie bajtów 13 i 14 we wpisach katalogu.
Machines should work. People should think.

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Formaty dyskietek
« Odpowiedź #3 dnia: 2019.01.27, 09:30:41 »
Jeśli 'timexowy' to ten z FDD, to niezupełnie.
Katalog zaczyna się na ścieżce '2' a nie '4'.

Dlatego napisałem:

Cytuj
z dokładnością do numeru i rozmiaru ścieżki z katalogiem

Na domiar "złego", polbritowski CP/M ma tylko pół ścieżki katalogu (2KB), czyli limit plików wynosi 64.

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Formaty dyskietek
« Odpowiedź #4 dnia: 2019.01.27, 14:08:44 »
Tylko 64 nazwy nawet w tym formacie 620K ?

Jeśli dobrze rozumiem w TOSie można tworzyć katalogi, czy ich nazwy też wykorzystują te same miejsca na swoje nazwy?
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Formaty dyskietek
« Odpowiedź #5 dnia: 2019.01.27, 14:25:51 »
Dlatego napisałem:
Muszę się w końcu oduczyć odpisywania w środku nocy :)
Machines should work. People should think.

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Formaty dyskietek
« Odpowiedź #6 dnia: 2019.01.27, 14:32:58 »
Jeśli dobrze rozumiem w TOSie można tworzyć katalogi, czy ich nazwy też wykorzystują te same miejsca na swoje nazwy?
Tak.
Katalog dyskietki ma w sumie 128 pozycji.
Pierwszą zajmuje nazwa dyskietki, więc do wykorzystania jest 127.
Można w nich zapisać albo informację o katalogu (jeden wpis, maksymalnie 16 katalogów na dyskietkę, IIRC wliczając nazwę dyskietki, która jest traktowana jako katalog) albo o pliku (ilość wpisów na plik jest uzależniona od wielkości pliku)
Machines should work. People should think.

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Formaty dyskietek
« Odpowiedź #7 dnia: 2019.01.27, 21:35:52 »
Katalog dyskietki ma w sumie 128 pozycji.
Pierwszą zajmuje nazwa dyskietki, więc do wykorzystania jest 127.
Można w nich zapisać albo informację o katalogu (jeden wpis, maksymalnie 16 katalogów na dyskietkę, IIRC wliczając nazwę dyskietki, która jest traktowana jako katalog) albo o pliku (ilość wpisów na plik jest uzależniona od wielkości pliku)

Tak, tak i tak. Odnośnie ostatniego zdania, pliki wymagają jednej pozycji w katalogu dla każdych zaczętych 16KB - czyli dla plików do 16384 bajtów wystarczy jedna pozycja, 16385-32768 bajtów - dwie pozycje itp. Dla dyskietek w formacie 620KB mnożymy razy cztery.

Dla ciekawskich dołączam hex dump początku katalogu dyskietki TOS V A.2 DEMO, dołączanej oryginalnie do FDD/FDD3000.
Jak widać, etykieta dyskietki ma przed nazwą bajt 255 (#FF). Katalogi w "roocie" mają ten bajt równy 0, podkatalogi mają w tym miejscu numer katalogu nadrzędnego itp.

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Formaty dyskietek
« Odpowiedź #8 dnia: 2019.01.27, 21:39:32 »
Muszę się w końcu oduczyć odpisywania w środku nocy :)

Eee. Nie oduczaj się, bo fajnie, jak forum żyje w nocy. Ja wtedy najczęściej żeruję ;)

ZbyniuR

  • *****
  • Wiadomości: 3333
  • Miejsce pobytu:
    Carlisle w UK
  • CPC AGA PSX
Odp: Formaty dyskietek
« Odpowiedź #9 dnia: 2019.01.27, 22:13:03 »
Zetknąłem się przed laty z okienkową nakładką na Amsdosa, która udostępniała możliwość tworzenia prostych struktur z podkatalogami, które korzystały do tego celu z 15-tu Userów. Ale nagranie na takim dysku czegokolwiek bez pośrednictwa tej nakładki rujnowało tą strukturę, a odczyt też był utrudniony bo nazwy zawierały niedozwolone w Amsdosie znaki. Niewygody z używania tego dopełniał fakt że te okienka obsługiwało się powolnym wskaźnikiem za pomocą klawiszy kursora, w dodatku ta nakładka nie umiała się przyczaić w RAMie gdy chcieliśmy skorzystać z Basica, ani nie miał wbudowanego kopiera między takimi dyskami a normalnymi. Ot taka sztuka dla sztuki ktoś chciał pokazać że da się to zrobić na 8bit.

Nie pamiętam jego nazwy. Kojarzy mi się z DES, ale to nie było to, tylko inny program który obczajałem w tym samym czasie.
- Jeśli masz w domu światło i wodę, tzn. że masz światłowód. ;)

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Formaty dyskietek
« Odpowiedź #10 dnia: 2019.01.27, 23:56:47 »
Jak widać, etykieta dyskietki ma przed nazwą bajt 255 (#FF). Katalogi w "roocie" mają ten bajt równy 0, podkatalogi mają w tym miejscu numer katalogu nadrzędnego itp.
Pliki i katalogi mają w tym miejscu ID katalogu nadrzędnego, katalogi dodatkowo mają tam ustawiony najstarszy bit (jako znacznik katalogu)
Machines should work. People should think.

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Formaty dyskietek
« Odpowiedź #11 dnia: 2019.01.28, 00:30:25 »
katalogi dodatkowo mają tam ustawiony najstarszy bit (jako znacznik katalogu)

Yyy, chyba nie. Wyznacznikiem katalogu jest rozszerzenie "DIR". Na obrazku który wrzuciłem wyżej widać, że większość katalogów nie ma w pozycji #00 ustawionego najstarszego bitu, ale np. MUSIC.DIR ma - czy aby ustawienie tego bitu nie oznaczało skasowania pliku/katalogu?
« Ostatnia zmiana: 2019.01.28, 00:50:20 wysłana przez trojacek »

steev

  • *****
  • Wiadomości: 1362
  • Miejsce pobytu:
    inode 42
Odp: Formaty dyskietek
« Odpowiedź #12 dnia: 2019.01.28, 00:52:24 »
Yyyyyy, więc tak i nie :)
(czego to się człowiek dowiaduje po nocach...)
Materiał do analizy w załącznikach.
Streszczenie : ma ustawiony bit 7 chyba że jest ukryty lub zabezpieczony.
Machines should work. People should think.

trojacek

  • *****
  • Wiadomości: 6831
  • Miejsce pobytu:
    Warszawa
Odp: Formaty dyskietek
« Odpowiedź #13 dnia: 2019.01.28, 00:54:50 »
Niezła ciekawostka :D

Phonex

  • *****
  • Wiadomości: 1260
  • Miejsce pobytu:
    Warszawa
Odp: Formaty dyskietek
« Odpowiedź #14 dnia: 2019.01.28, 11:35:21 »
Ponieważ zawsze ignorowałem katalogi, po tych ciekawostkach zaniepokoiłem się, że mój Auto menu może wyświetlać wszystkie pliki BASICa ze wszystkich katalogów, a przecież potem LOAD ich nie będzie w stanie załadować. Tym bardziej że znalazłem w źródłach że "test na BAS eliminuje też DIR".
Ale jednak wyświetla tylko z roota. Matrix wciąż mnie lubi :D Widocznie test na nazwę dysku odsiewa wszystko co nie ma "0" na początku wpisu.