Surová data tak, jak byla v roce 2013 stažena z Pandory (HTML zdroj bez úprav, osobní e-mailové adresy jsou maskované).
<!-------------------------------------------------------------->
<!-------------------------------------------------------------->
<table width="100%"><tr><td align="left" valign="middle"></td><td align=right valign="middle"></td></tr></table><BR><pre>Ahoj Michale a ostatní,
Nepomůže ti tenhle dokument?
Sehnal jsem ho někde když jsem sháněl podklady pro svůj MZ disk editor.
<img src="BODY_IMAGES_WRAP_GIF"> (safra, mít tak čas se tomu pořádně věnovat).
Martin
<span class="replyquote1">> ------------ Původní zpráva ------------
> Od: Michal Hučík (sharpemu@pandora.cz) <ordoz@[doména skryta]>
> Předmět: BASIC FD filesystem
> Datum: 16.1.2012 16:41:26
> ----------------------------------------
>
>
> Ahoj,
>
> kdyz uz jsem se pohrabal v tech FDC, tak jsem se rozhodl, ze bych mohl
> dale pokracovat nejakou knihovnou pro praci se
> vsemi soucasnymi souborovymi systemy, ktere jsou pouzivany na Sharpu.
> Cilem by mely byt funkce, ktere by umoznily vypis
> adresare, cteni, zapis, smazani souboru a podle moznosti FS take
> nastaveni jeho atributu, ci prejmenovani. Jde mi
> samozrejme predevsim o moznost bezproblemoveho prenosu souboru
> odkudkoliv kamkoliv. Jakmile budou knihovny hotove, tak
> by samozrejme nemel byt problem vymenit driver treba za takovy, ktery
> bude obsluhovat primo DSK, nebo ramdisk, ci jeho
> obraz z emulatoru.
>
> Jako prvni jsem se pustil do sberu informaci o tom jak funguje zakladni
> format BASIC disket. Tohle jsem posbiral v
> pameti a take odsledoval pruzkumem obsahu disket. Potreboval bych
> poradit predevsim u radku, na kterych jsou otazniky:
>
> Predpoklad: BASIC zrejme nepodporuje HD diskety. Je navic limitovany
> velikosti bitove mapy (250 bajtu) a proto lze na disketu v tomto
> formatu pouzit pro data pouze 512 kB - 12 KB pro ucely systemu a
> adresar = 500 kB max.
>
> Soubory jsou ulozeny v sektorech kontinualne. To znamena, ze se po
> smazani nekolika souboru muze stat, ze i kdyz je na
> disku dostatek mista v kB, tak jiz neni mozne ukladat vetsi soubory,
> protoze pro ne neni na diskete k dispozici
> dostatecne velky souvisly blok volnych sektoru.
>
> Format ma obracenou logiku zaznamu a proto se pro vypocet skutecne
> logicke stopy musi udelat prevod pri kterem se u
> (mz) logicke_stopy invertuje 0. bit (obracena strana diskety)
>
> Format pouziva alokacni bloky, coz je 16 bitove cislo = (mz)
> logicka_stopa * 16) + sector - 1
>
>
> Zavadec:
> =======
>
> logicka stopa 1 (v mz 0), sector 1
>
>
> offset size description
> -------------------------------------------
> 0 1 0x03 - typ souboru zavadece (musi byt
> 0x03)
> 1 6 IPLPRO
> 7 12 <filename>
> 19 1 0x0d
> 20 2 <SIZE>
> 22 2 <START>
> 24 2 <EXEC>
> 26 4 ???? (nevyuzito?)
> 30 2 alokacni blok zacatku programu (pokud
> je = 1, tak je zacatek ve 2 sektoru teto stopy a
> program zavadece pak ovsem nesmi
> byt vetsi jak 14 sektoru = 3584 bajtu = 0x0e00, jinak musi byt umisten v
> souborove
> casti disku)
> 32 224 ???? (nevyuzito? u nejake diskety jsem
> od pozice 128 videl nejaky description v ASCII)
>
>
>
> MZ disk info:
> ===========
>
> logicka stopa 1 (v mz 0), sector 16
>
>
> offset size description
> -------------------------------------------
> 0 1 ???? (nejaka konstanta? nevyuzito?)
> 1 1 prvni alokacni blok, ktery je k
> dispozici pro ulozeni filat
> zpravidla 0x30 = 2. (v mz 3.)
> stopa, 1. sektor
>
> 2 2 pocet obsazenych alokacnich bloku
> (naformatovana disketa tady ma 0x30
> = 3 cele stopy)
>
> 4 2 velikost disku v alokacnich blocich -
> 1 (u 720 kB diskety = 0x07ff )
>
> 6 250 bitova mapa disku, kazdy bit zastupuje
> jeden konkretni alokacni blok, pokud je
> nastaven, tak to znamena, ze misto
> je obsazeno
> Tady dochazi k limitu 250 * 8 =
> maximalni pocet alokacnich bloku.
>
>
>
>
>
> MZ adresar:
> ==========
>
>
> logicka stopa 0 (v mz 1), sector 1 - 10
>
> ???? nasledujicich 6 sektoru ve stope je nevyuzito?
>
> max pocet polozek adresare = 77 ????
> V poslednim sektoru je 64 bajtu nevyuzito ????
>
>
> offset size description
> -------------------------------------------
> 0 1 0x80 ????
> 1 1 0x01 ????
> 2 30 ???? (nepouzito?)
>
> 32 xx polozky adresare
>
>
>
> offset size description
> -------------------------------------------
> 0 1 file typ - 0x00 = smazana polozka
> 1 16 <filename>
> 17 1 0x0d
> 18 2 ???? (nejaky atribut?)
> 20 2 <SIZE>
> 22 2 <START>
> 24 2 <EXEC>
> 26 4 ???? (nevyuzito?)
> 30 2 alokacni blok
>
>
> Cela 3. (v mz 2.) stopa je nevyuzita ???? a od 2. (v mz 3.) stopy
> zacinaji data prvniho souboru.
>
>
> Potreboval bych poradit jak je to s atributy, pripadne souborovymi typy.
> K cemu slouzi konstanty umistene v sectoru pred direktorarem a zda se
> neco zajimaveho neskryva v bajtech, ktere jsem oznacil jako nepouzite.
>
> Michal
>
>
>
> ---
>
>
> </pre>