Co se m podalo zjistit o formtech disket, pouvanch na potai SHARP MZ-800 verze 1.0 ===================================================================== 1. Diskety systmu SHARP P-CP/M 80 ---------------------------------- Formty disket: |-----------------------------------------------------------------| | oznaen | kapacita | poet | sektor | systmovch | poloek | | | (kB) | stop | na stopu | stop | adres | |----------+----------+-------+----------+-------------+----------| | 2DMZ800 | 312 | 79 | 32 | 1 | 64 | | 1DIBMPC | 156 | 40 | 32 | 1 | 64 | | 2DIBMPC | 316 | 80 | 32 | 1 | 64 | | 2DMZ80B | 340 | 35 | 80 | 1 | 128 | | 2DM3500 | 296 | 40 | 64 | 3 | 128 | | 2DM5500 | 304 | 40 | 64 | 2 | 128 | |-----------------------------------------------------------------| Disk Parameter Block (DPB) je oproti standartnmu CP/M upraven takto: $E100 DPB logickho disku A: $E10F pzen fyzickho disku a jeho parametry - Bity 0 a 1 oznauj fyzick disk. Takto lze jednomu fyzickmu disku pdit vce disklogickch s rnmi formty. - Bity 2 a 7 uruj dal parametry disku. Pro jednotliv formty jsou pouity nsledujc hodnoty: 2DMZ800\ adresy sektor1-10h, bez prokldn, stopa 1DIBMPC | 011110 je na jedn stran, slovn stop od 2DIBMPC/ kraje ke stdu a na druh stran od stdu ke kraji 2DMZ80B 000011 adresy sektor1-0Ah, 8Bh-94h, neprokldan, stopa zabr ob strany diskety (druh strana je oznaena jednikou v 7. bitu adresy sektoru). 2DMZ3500\ 001000 adresy sektor1-10h, 81h-92h, neprokldan, 2DMZ5500/ stopa zabr ob strany. Pro ten disket formtu CP/M LEC (Lama) je potba krom DPB upravit diskeditorem i uveden byte takto: 001110DD - adresy sektor1-12h, 81h-92h, neprokldan, stopa zabr ob strany. DD oznauje zvolen fyzick disk. Tento formt je pouiteln pro diskety kapacity 720kB. Pro ni kapacity je nutno zmnit adresy sektor Bohuel, vymezen prostor je pli mal pro zapsn sektorna disketch HD (1440kB). $E110-$E13F Vlastn popis fyzickch sektor jak bylo uvedeno ve. $E140 Logick disk B: $E180 Logick disk C: $E1C0 Logick disk D: 2. Diskety formtu SHARP (formt pouvan ROM potae) -------------------------------------------------------- Data jsou na disket uloena nsledovn: stopa/sektor 0/1 Je-li zde inicializan program, mus mt 1. byte (typ souboru) hodnotu 03 a nzev inicializanho programu mus zanat IPLPRO (2. a 7. byte). Od 8. po 17. byte je vlastn nzev inicializanho programu, 18. byte mus bt 0Dh. Dal byty maj tento vznam: 19 hodnota 01h oznauje soubor chrnn proti zpisu 20 ??? 21, 22 dlka programu 23, 24 zavdc adresa 25, 26 startovac adresa 27-30 ??? 31, 32 z tchto bytlze vypotat prvn stopu a sektor, odkud je uloen soubor na disku. (Uveden formt je pouit i pro jednotliv poloky adres diskety. Adreszan na 1 stop, 1 sektoru, ale a od 33 bytu. Kad poloka adres tedy zabr 32 byt) Dle je na 0. stop a po sektor 14 vetn msto pro uloen vlastnho inicializanho programu. Ten vak m zanat i kdekoliv jinde ve voln oblasti disku. 0/16 1. byte slo disku 2. byte slo sektoru, kde zan voln oblast pro uloen soubor(standartn 30h, tedy 3. stopa, 1. sektor.) 3. a 4. byte Poet dosud obsazench sektor 5. a 6. byte Poet stop a sektorna disku, ili formt diskety. Standartn FFh, 04h (80 stop, 16 sektor ~ 320 kB). P pouit formtu 640 kB (160 stop, 16 sektor je nutno tyto byty opravit na FFh, 09h, ovem a PO ZKOPROVN systmu. I kdy je toti systm koprovn tak z formtu 640kB, dojde p ppisu k nastaven na formt 320kB :-( 7. byte Zde zan bitov mapa obsazen jednotlivch sektor Pro uvolnn msta na disku po vymazn souboru nesta pouze nastavit typ souboru v adres na 00h, ale je nutn opravit i tuto mapu, jinak je dan oblast stle obsazen. Pouit velikost mapy vak omezuje maximln vyuitelnou kapacitu disku na 512 kB, take p naformtovn na 640 Kb nelze poslednch 128 kB vyut :-( Pouze v nkterch ppadech se poda zapsat jet jeden soubor, kter m st tto oblasti vyut. Pak jsou ale problmy s jeho vymaznm (systm hls chybu). 1/1 1. byte Maximln poet poloek v adres vetn systmovho souboru. 2. byte Znovu slo disku ??? 1/16 Zde zan adresdiskety. daje o uloench souborech zanaj 33. bytem tohoto sektoru, kad zznam m 32 byt Adreskon na 8 sektoru tto stopy. Z toho plyne, e na disk lze uloit maximln 63 souborlibovolnch a jeden systmov soubor. Celkov lze ct, e pouvan systm soubora uloen dat na disku m nkolik vad a nevhod: Dky pouit bitov mapy pro oznaen toho, kter sektory jsou obsazen nelze p pouit upraven formtovac utility (FDFORMAT160) vyut celou takto dosaenou kapacitu diskety. Ptom pouit bitov mapy je vlastn zbyten. Uvme-li toti, e soubory jsou na disku uloeny spojit, lze ze znm dlky souboru a znmho potku uloen souboru na disku (oboj je v adresv poloce) kdykoliv sestavit mapu obsazen disku. Nevm vak o dnm programu nebo utilit, kter by takto se soubory zachzel. Zmnn spojit uloen navc znemoje vyuit mench volnch mst na disku, take kdy napklad mme na disku volnch tba 100 kB v 10 blocch po 10 kB (pro zjednoduen), tak na disketu zapeme pouze soubory do velikosti 10 kb. Systm toti nen schopen rozdlit velk soubor do nkolika mench blok a hlavn si toto rozdlen nem kam napsat. Snad by to mohlo bt mon u datavch souborv BASICu, kde je na konci kadho sektoru odkaz na sektor nsledujc (nebo 00 00, co znamen konec souboru). Jedinm enm, jak toto msto uvolnit, je zkoprovat obsah diskety, ovem po jednotlivch souborech. Tedy aspodo doby, ne nkdo nape njak "setsac program", kter posune vechny soubory na zatek disku (a sprvn uprav odkazy v datovch souborech). Nakonec, njak pkn program pro komplexn sprvu disket a soubor (formtovn, koprovn, mazn, "setsn" atd.) velmi citeln chyb. ======================================================================== Ve uveden informace nejsou vsledkem njakho podrobnho bdn, ale vznikly pouze jako vedlej efekt p en nkterch problm na kter jsem p prci narazil. Mohou bt tedy neln, zkreslen nebo i vysloven patn. Navc u jsou njak ten rok star, take jsem mon na nco, co jsem si tenkrt nenapsal, zapomnl. Pokud m nkdo njak podrobnj, psnj nebo dopljc aje, budu velmi rd, kdy m je pole. Tom Nehybka FidoNet: 2:421/25.21