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)]