Konference: Počítač SHARP MZ-800 a emulátory
Od: | Martin Frohlich |
Datum: | 16.1.2012 19:02 |
Předmět: | Re: BASIC FD filesystem |
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.
(safra, mít tak čas se tomu pořádně věnovat).
Martin
> ------------ Původní zpráva ------------
> Od: Michal Hučík (sharpemu tu byla ta zakroucena vec pandora.cz) <ordoz tu byla ta zakroucena vec ordoz.com>
> 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
>
>
>
> ---
>
>
>
Ostatní příspěvky vlákna:
[2012/1 (125)] [2012/2 (34)] [2012/3 (57)] [2012/4 (46)] [2012/5 (40)] [2012/6 (44)] [2012/7 (64)] [2012/8 (57)] [2012/9 (32)] [2012/10 (55)] [2012/11 (25)] [2012/12 (63)]
[1999 (1)]
[2000 (168)]
[2001 (733)]
[2002 (459)]
[2003 (654)]
[2004 (224)]
[2005 (105)]
[2006 (182)]
[2007 (201)]
[2008 (294)]
[2009 (363)]
[2010 (782)]
[2011 (522)]
[2012 (642)]
[2013 (442)]