forum speccy.pl

ZX Spectrum => PROGRAMOWANIE => Wątek zaczęty przez: steev w 2019.01.26, 23:00:22

Tytuł: Formaty dyskietek
Wiadomość wysłana przez: steev w 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)
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: trojacek w 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.
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: steev w 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.
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: trojacek w 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.
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: ZbyniuR w 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?
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: steev w 2019.01.27, 14:25:51
Dlatego napisałem:
Muszę się w końcu oduczyć odpisywania w środku nocy :)
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: steev w 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)
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: trojacek w 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.
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: trojacek w 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ę ;)
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: ZbyniuR w 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.
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: steev w 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)
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: trojacek w 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?
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: steev w 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.
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: trojacek w 2019.01.28, 00:54:50
Niezła ciekawostka :D
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: Phonex w 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.
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: Phonex w 2019.01.29, 10:28:26
Jednak to nie przypadek.
Zajrzałem do programu ponownie i znalazłem przy niezerowym pierwszym bajcie wpisu komentarz "sub-dir lub #E5 - pusty". Okazuje się że to wszytko kiedyś wiedziałem :D Zadbałem też o poprawne wyświetlanie/sprawdzanie tych ze statusem protected, a nawet postanowiłem nie wyświetlać ukrytych.
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: tdu w 2019.01.29, 16:07:33
Ja bym proponował żeby start wyświetlał wszystkie pliki, a użytkownik niech sam zadecyduje które ukryć a które zabezpieczyć. Klawisze H i P mogłyby pełnić tę rolę.
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: steev w 2019.01.29, 23:14:17
Ale to już wtedy nie będzie start tylko filemanager :)
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: trojacek w 2019.01.29, 23:21:57
Dokładnie.
Ale po prostu brakuje dobrego file managera pod TOS-em.
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: tdu w 2019.01.30, 08:56:09
I oto właśnie chodzi. Dwa panele , dla dwóch napedow. Cos w stylu nortona. Probowalem cos takiego zrobić ale poleglem na odczycie plików.  Chyba jest tu tylko jedna osoba z odpowiednią wiedzą.  :)
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: Pyza^Illusion w 2019.09.24, 20:19:56
Ale jest jakiś file manager zbliżony do NC pod TOS! Miałem, nawet używałem. Obsługiwał katalogi, miał dwa panele etc. Tak się zastanawiam, czy nie nazywał się po prostu File Manager :D
Muszę wreszcie skombinować jakiegoś sprawnego ZX'a i poprzerzucać całe oprogramowanie z dyskietek.
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: Phonex w 2019.09.24, 20:46:24
Na ZX Shareware było coś takiego. Nawet znamy autora!
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: trojacek w 2019.09.24, 23:24:54
Pyza chyba coś innego widział, skoro dwa panele. Sam bym chętnie to zobaczył, bo to co ja wymodziłem było słabe i upierdliwe w używaniu, a nie chciało mi się tego dalej rozwijać, bo to by było jak rozmazywanie kupy po dywanie.

Ostatnio chodzi mi po głowie coś lepszego, ale w rozdzielczości 512x192. Miało być dla divIDE, ale podmianka procedur dyskowych nie powinna być raczej jakoś wybitnie trudna.
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: damik w 2019.09.25, 08:10:45
@Trojacek, czekam na tę Twoją aplikację w trybie Timex'owym z niecierpliwością, z tym że wolałbym wersję pod divIDE :)
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: Pyza^Illusion w 2019.09.25, 19:12:01
Pyza chyba coś innego widział, skoro dwa panele.

Tak mi się wydaje, choć teraz nie postawiłbym o to Spectruma w zakładzie. To było 15-20 lat temu. Za szybkie to nie było. Chyba szerokość czcionki była na 5 albo 6 pikseli. Listing się trochę ślamazarnie przez to wyświetlał... Może faktycznie był jeden panel, a strzałkami lewo/prawo przechodziło się do drugiego... Hmmm. Pamięć jednak jest zawodna No mam nadzieję w jakimś niedługim czasie uda się to sprawdzić. Ciągle czekam na jakiś sprawny sprzęt.
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: trojacek w 2019.09.26, 00:02:17
@Trojacek, czekam na tę Twoją aplikację w trybie Timex'owym z niecierpliwością, z tym że wolałbym wersję pod divIDE :)

Dzięki :)) Postaram się zatem wrócić do klepania kodu w najbliższym czasie. Choć w zasadzie niejako równolegle powstaje przeglądarka plików tekstowych, która będzie integralną częścią nawigatora.

Pyza chyba coś innego widział, skoro dwa panele.

Tak mi się wydaje, choć teraz nie postawiłbym o to Spectruma w zakładzie. To było 15-20 lat temu. Za szybkie to nie było. Chyba szerokość czcionki była na 5 albo 6 pikseli. Listing się trochę ślamazarnie przez to wyświetlał...

Tak, to jednak to - użyłem procedury 42/51. I faktycznie się to powoli pisało na ekranie.
Jedak postaram się, by wersja timexowa działała szybciej, mimo 85 kolumn :)
Tytuł: Odp: Formaty dyskietek
Wiadomość wysłana przez: tdu w 2019.09.26, 00:45:15
Ja proponuje fdd3000, tu bardziej by sie przydalo.