$BEGIN |15 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ- Prostota a primitivnost sama / DoSfS / ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |07 Zdravím v¹echny 'výhòáky' i náhodné ètenáøe. Tak copak se dneska dozvíme? Asi si povíme nìco o souborovém systému DOSu - jak vlastnì pøesnì funguje to ukládání souborù, a kde a jak je ulo¾ená FAT tabulka, jak jsou ulo¾ené adresáøe, atakdále atakdále neboli zkrácenì atd. A jestli budu mít náladu tak zkusím sbastlit i nìjakou utilitku která to pøedvede v praxi. Tak se na to vrhnem! |14 Èást první - jak jsem rozpùlil harddisk|07 Ne, nezkou¹el jsem ho nijak øezat ani jinak mechanicky pùlit. Jednodu¹e jsem editoval |15partition|07 table podle mého gusta, i kdy¾ jsem mohl také být lenoch a udìlat to pomocí nìjaké utilitky - prý se jmenuje fdisk nebo tak nìjak a dìlá pøesnì tohle - a existuje snad na ka¾dém operaèním systému co jsem vidìl. No jo, ale co to vlastnì je? U¾ jsem øekl, ¾e je to jakási tabulka - ve Winèe¹tinì se tomu øíká tabulka oddílù (co¾ je kupodivu celkem pou¾itelný výraz, narozdíl od mnoha jiných :-). A v té tabulce jsou popsané |15diskové oddíly|07, které se chovají vìt¹inou jako samostatné logické disky (ov¹em pokud to zrovna windows ¹patnì nepochopí - pak místo kopírování souboru na jednu partition ho zkopíruje na zaèátek jiné, co¾ je celkem fatální :) - moje vlastní zku¹enost ):. Ta tabulka musí být na ka¾dém HDD a musí v ní být alespoò jedna partition (diskový oddíl, logický disk). Celá tabulka je v úplnì prvním sektoru harddisku a má max. 4 polo¾ky (ono jich mù¾e být i více, viz dále). Ti kdo u¾ o harddisku nìco vìdí, urèitì si uvìdomili, ¾e je ve stejném sektoru jako zavadìè - holt se tam musejí nìjak vejít... :) No, u¾ toho nechám a rad¹i vám rovnou uká¾u její formát: |14 ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÂÄÄÄÂÄÄÄÂÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³|15 Zaèátek partition |14³ AI ³ H ³ S ³ CYL ³ offset |131BEh|14 ³ ³|15 Konec partition |14³ SI ³ H ³ S ³ CYL ³ offset |131C2h|14 ³ ³|15 Partition |14³ Relativni zacatek³ offset |131C6h|14 ³ ³|15 Velikost partition |14³ Pocet sektoru ³ offset |131CAh|14 ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚZacatky popisovacu partition:¿ ³ 1 ³ offset |131BEh|14 ³|15 velikost |14³ ³ 2 ³ offset |131CEh|14 ³|15 jedne |14³ ³ 3 ³ offset |131DEh|14 ³|15 partition |14³ ³ 4 ³ offset |131EEh|14 ³|15 je 10h |14³ ÀÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÙ |07 |11 Nakres I - partition table|07 Hmm... z toho asi moc moudøí nebudete - tak¾e to bude chtít vysvìtlení. |11AI|07 = |15indikátor aktivnosti oblasti|07 - to znamená ze které oblasti se zavádí systém. |1300h|07 : oblast je neaktivní |1380h|07 : oblast je aktivní - tento flag mù¾e mít nastavena max. jedna oblast. |11SI|07 = |15indikátor systému|07 - urèuje OS, který danou oblast vlastní. |1300h|07 : nikoho to nenapadlo urèit aneb nespecifikovaný |1301h|07 : DOS 12-bit FAT |1304h|07 : DOS 16-bit FAT |1305h|07 : DOSEXT - tak toto je velice dùle¾itý typ. Slou¾í k vytváøení tzv. rozíøených oblastí (extended partitions). Ty mají ten význam, ¾e v nich mù¾ou být zapouzdøené dal¹í partition - tzn. v prvním sektoru takové partition je dal¹í partition table, obsahující záznam o jedné oblasti v této roz¹íøené oblasti (stále s námi? ;) a pøípadnì odkaz na dal¹í roz¹íøenou oblast, atakdále a¾ do nekoneèna... - pozor! nezapomeòte ¾e zapouzdøené partitions mù¾ou být jenom v mezích jejich mateøské oblasti! Název je mírnì matoucí, ponìvad¾ takováto roz¹íøená partition lze pou¾ít i tøeba na Linux, a snad na ka¾dý OS... |1306h|07 : BIGDOS - netu¹ím rozdíl mezi 06h a 04h - poraïte mi nìkdo... (více ne¾ 512Mb?) |1382h|07 : Linux SWAP |1383h|07 : Linux Native |13DBh|07 : CP/M :o) samozøejmì ¾e tìch typù je daleko více - tohle byl jenom úzký výbìr. |11CYL|07= Dolních 8 bitù èísla cylindru. Horní dva byty jsou ukradené z vr¹ku S |11S|07 = Dolních ¹est bytù obsahuje èíslo sektoru |11H|07 = èíslo hlavy Tak¾e |11H+S+CYL|07 urèuje jednoznaènì konec oblasti (ale je tu malý problém s èísly cylindrù nad |131023|07 - ten problém jsem je¹tì nerozlu¹til - jakmile to nìkdo rozkóduje, dejte mi prosím vìdìt... Jediná záchrana aby to pochopily i Windoze 95, ne jenom Linux, je nechat to na jejich fdisku nebo rucne snizit pocet cylindru na |13512|07... ;) i její zaèátek. Pole |11AI|07, |11H|07, |11S|07 a |11CYL|07 jsou je¹tì k tomu organizované tak, ¾e staèí pouze dvì instrukce |15MOV|07 aby se vhodnì nastavily |11AX|07 a |11CX|07 pøed zavoláním |15INT 13h|07, kterým se naète aktuální zavádìcí záznam (pozn.: moderní zavadìèe jako |15LILO|07, |15BOOT MANAGER|07 apod. pracují tro¹ku jinak, v podstatì v souèasnosti ji¾ nemá |11AI|07 tak nebetyèný význam). Jo, a ka¾dá oblast zaèíná hlavou |130|07 a sektorem |131|07. Ov¹em¾e vyjímka potvrzuje pravidlo - oblast na zaèátku disku, která zaèíná sektorem |132|07, ponìvad¾ sektor jedna zabírá hlavní zavadìè a partition table. Nejsem si teï jistý proto¾e to u¾ jsem nìjakou dobu nezkoumal, ale takté¾ by to mìlo být s |15DOSEXT|07... Relativní zaèátek je vpodstatì poèet sektorù, které pøedcházejí danou oblast. Je veliký |134|07 byty, tzn. |15DWORD|07 (unsigned long pro Cèkaøe, pascalisti mají smùlu, proto¾e tpascal má jenom longint který je znaménkový). Tak¾e u disku se 4mi hlavami, 17ti sektory na stopì a na¹e oblast zaèíná na cylindru |133|07, sektoru |131|07 a hlavièce |130|07, tak její rel. zaèátek má hodnotu |13204|07 (|133*4*17|07) na tøech pøedcházejících cylindrech. A poèet sektorù které daná oblast vlastní je v poli poèet sektorù. To je opìt |134|07-bytová hodnota (|15DWORD|07). Prostì její velikost. Ale je¹tì nesmíme zapomenout na kontrolní signaturu |1355AAh|07, která je na ofsetu |131FEh|07 - ta potvrzuje platnost tabulky. Pozor! Tenhle znak musí mít ka¾dý zavadìè OS! Tak - to bysme snad mìli partition tabulku. Teï pøichází na øadu ona MSDOSí ¹ílenost které se øíká |15Boot Record|07. Je to vlastnì pole spousty podivných údajù, jejich¾ chybnost zpùsobuje pomìrnì velké problémy a tehdy není radno zapisovati na HDD :( Ale nu¾, vrhnìme se na to! To¾, zase by to chtìlo nìjakou tabulku, ¾e? Tedy zøete a radujte se! |14 Offset ³ Velikost ³ Popis ÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ |13+03h|14 ³ 8xDB ³|15 OEM ID|14 |13+0Bh|14 ³ DW (L M) ³|15 Pocet bytu na sektor (vetsinou 512)|14 |13+0Dh|14 ³ DB ³|15 Pocet sektoru na cluster (treba 16)|14 |13+0Eh|14 ³ DB ³|15 Rezervovane sektory na zacatku disku|14 |13+0Fh|14 ³ DB ³|15 ???|14 |13+10h|14 ³ DB ³|15 Pocet kopii FAT tabulky (vetsinou 2)|14 |13+11h|14 ³ DW ³|15 Pocet polozek v korenovem adresari|14 |13+13h|14 ³ DW ³|15 Pocet sektoru na disku (pokud je|14 ³ ³ |15 vyplnen velky pocet sektoru tak|14 ³ ³ |15 je toto nepouzito a musi to byt 0!)|14 |13+15h|14 ³ DB ³ |15 Media descriptor byte - typ media|14 |13+16h|14 ³ DW (L M) ³|15 Pocet sektoru na FAT tabulku (190)|14 |13+18h|14 ³ DW (L M) ³|15 Pocet sektoru na stopu|14 |13+1Ah|14 ³ DW (L M) ³|15 "Stran" disku (hlav)|14 |13+1Ch|14 ³ DD ³|15 Specialnich "skrytych" sektoru (??)|14 |13+20h|14 ³ DD ³|15 Velky pocet sektoru na disku|14 |13+24h|14 ³ DB ³|15 Fyzicke cislo disku|14 |13+25h|14 ³ DB ³|15 ???|14 |13+26h|14 ³ DB ³|15 Extended Boot Record Signature|14 |13+27h|14 ³ DD ³|15 Seriove cislo svazku|14 |13+2Bh|14 ³ 11xDB ³|15 Volume Label (vsak vy vite o co de)|14 |13+36h|14 ³ 8xDB ³|15 Filesystem ID (FAT16/FAT32)|14 |07 |11 BootRecord|07 Tabulka hodnot pro ty ménì znalé... (bude se vám hodit i jinde) |14 ³ Asm ³ Pascal ³ C ÃÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ³ DD ³|11 longint |14³|15 unsigned long|14 ³ DW ³|11 word |14³|15 unsigned int|14 ³ DB ³|11 byte |14³|15 char (unsigned :)|14 |11 Pozn.: pascalský longint je znaménkový, tak bacha na to!!!|07 |15 LSB|07 (L) = Less Significancy (kdo ví jak se to pí¹e :) Byte = Ménì významný byt (ni¾¹í bity) |15 MSB|07 (M) = More Significancy Byte = Více významný byt (vy¹¹í bity) Hrmpf... To je sice hezké, asi si øíkáte, ale chtìlo by to nìjaký popis. Budi¾, máte ho mít. Na zaèátku je tzv. |15OEM ID|07. To obsahuje nìco jako jméno 'výrobce' partition - napø na mém DRDOSu je to |13"IBM 3.1"|07, u win95 je to |13"MSWIN4.1"|07 apod. Nevidìl jsem, ¾e by na tom nìkdy nìco zále¾elo... Potom tu máme poèet bytù na sektor. To je doufám jasné - prostì jak je veliký jeden sektor. Poèet sektorù na cluster u¾ je zajímavìj¹í. Urèuje, kolik sektorù bude v jednom clusteru, pøitom cluster je minimální jednotka, ve které se fyzicky udává velikost soubor. Tedy pokud máme soubor velký tøeba jenom jeden znak, pøesto zabírá (bytu na sektor)*(sektoru na cluster)! Viz také popis FAT tabulky. Rezervované sektory na zaèátku disku? Vìt¹inou bývá jednièka, zøejmì (asi, mo¾ná...) poèet sektorù, které se vynechají pøi èíslování a jednièka je a¾ zaèátek partition + rezervované sektory, nebo je to poèet sektorù po kterých zaène FAT. Sám jsem to nikdy nepotøeboval... Na |130Fh|07 je nula a asi by tomu patøila popiska "rezervované" :) Poèet kopií |15FAT|07 tabulky je v¾dy |132|07 a DOSu i rùzným diskovým utilitám byste asi pìknì zamotali hlavu pøi pokusu to nìjak mìnit ;) Poèet polo¾ek v koøenovém (root, ?:\ ) adresáøi. Èím více polo¾ek, tím více souborù v nìm mù¾ete mít, ale tím více místa také zabere. Doporuèuji zmen¹ovat jenom pro mimoøádnì poøádkumilovné typy a zvy¹ovat pouze pro ty co neuznávají mo¾nost adresáøù v DOSu :) Ale i tak nezaruèuju, ¾e s tím DOS umí korektnì pracovat - ka¾dopádnì to chce pøi zvy¹ování samozøejmì také zvìt¹it odpovídajícím zpùsobem velikost adresáøe ve |15FAT|07ce (viz daleko daleko dále...). Poèet sektorù na disku no comment, výjimku máte pøímo v tabulce. Media descriptor type urèuje typ média, pro harddisk je to |13F8h|07. Pocet sektoru na |15FAT|07 tabulku je dulezity - cislo je vypocitano podle velikosti disku - abysme to plne pochopili, musim dopredu prozradit, ze jedna polozka v |15FAT|07 ma |1316|07 bitu (|132|07 byte) a oznacuje jeden cluster na disku. Takze kdyz jeden sektor ma |13512|07 bytu tak se do nej vejde |13256|07 clusteru. A pokud je jich na disku treba |1348640|07, tak logicky |1348640/256 = 190|07. Takze pocet sektoru/|15FAT|07 je |13190|07 (na |15__JEDNU__ FAT|07!). Pocet sektoru na stopu? Snad taky neni co dodat - ja jsem to nikdy nevyuzil, ale mozna ze nekomu hodit - pouziva se to k vypoctu fyzickeho cislo sektoru (o tom zas nekdy jindy...) Pocet hlav ('stran' :) disku - take pouzito k vypocitani fyz. sektoru. Pocet skrytych sektoru? Nejaka tajemna informace DOSu, pokud nekdo prijdete na to, co to vlastne je, napiste mi (Resp. k cemu to slouzi, na zacatku disku je spousta prazdnych sektoru, jejichz cislo se podezrele shoduje s udajem zde... :-\ ). A velky pocet sektoru na disku? Pouziva se kdyz nestaci ten maly. Fyzicke cislo disku je... jeho fyzicke cislo :o) - blize viz |15INT 13h|07... |1325h|07 byva nula a ExtBoot Signature podle me soukrome teorie potvrzuje, ze nasledujici informace jsou nastavene. To znamena ze volume label je |15i|07 (viz adresare) tady, mate tu serial number (muzete vyuzit treba pro ochranu kopirovani nejakeho programu) a filesystem id (snad vyuzivane jenom Windows9x aby poznal jestli tam ma |15FAT16|07 nebo |15FAT32|07. Uff... U¾ abych pomalu zalehl, tak¾e na zbytek se tì¹te pøístì! Èeká vás popis adresáøù a toho hlavního, fyzicky nejjednodu¹¹ího ale kdy¾ o tom nevíte nic tak nejnepochopitelnìj¹ího subjektu - |15FAT|07ky. A pokud jste nìkdo zklamán, ¾e si je¹tì stále nemù¾ete vytvoøit svùj vlastní adresáø, pro netrpìlivce tu mám jednu malou strukturu: |14 C: ³Komentáøe: ³Pascal: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ filename[7] ³ ³ filename:array[0..7]of char ext[2] ³ ³ ext:array[0..2]of char char attr ³ ³ attr:byte char reserved[8] ³ ³ reserved:array[0..8]of char unsigned int time ³ LSB MSB ³ time:word unsigned int date ³ LSB MSB ³ date:word unsigned int abno ³È. Alok. Bloku L M³ abno:word unsigned long size ³LSB(L M) MSB(L M) ³ size:longint {neznamenkovy!} |07 Dlouhé bádání a nakonec jenom apatické èekání na pokraèování v¹em netrpìlivcùm! Pac a pusu, Pasky. e-mail: |09pasky@pruvodce.cz|07 (tøeba ;) homepage: |09http://fly.to/pasky|07 (mj. (srdeènì zdravím, Martine :) tam bude pokraèování èlánku hned jak ho sepí¹u) (definitivnì dokonèeno, zformátováno a pøipraveno k odeslání v hvìzdné datum |1310012000/2059|07) $END $directory ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ- Prostota a primitivnost sama / / DoSfS / / ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Ahoj, tak jsem tu zase, abych vás opìt tro¹ku pootravoval tìmi svými nesmysly. No, co se dá dìlat... Kdysi jsem tu nìkterým netrpìlivcùm nechal tabulku struktury jedné adresáøové polo¾ky. Je na èase, abych jí tro¹ku objasnil. Tak¾e nejdøív ji sem znova strèit... C: ³Komentáøe: ³Pascal: ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ filename[7] ³ ³ filename:array[0..7]of char ext[2] ³ ³ ext:array[0..2]of char char attr ³ ³ attr:byte char reserved[8] ³ ³ reserved:array[0..8]of char unsigned int time ³ LSB MSB ³ time:word unsigned int date ³ LSB MSB ³ date:word unsigned int abno ³È. Alok. Bloku L M³ abno:word unsigned long size ³LSB(L M) MSB(L M) ³ size:longint {neznamenkovy!} Directory entry Tak¾e na zaèátku je jméno souboru (8 písmen), ihned za ním (¾ádné teèky nebo tak podobnì!) následuje 3písmenná pøípona, potom atributový byte, rezervovaný kus, èas a datum posledního pøístupu (takové pochybné...:), èíslo prvního AB (alok. bloku, prostì clusteru) souboru (blí¾e viz FAT) a velikost souboru. Teï podrobnì o jednotlivých polo¾kách: ³ Jméno souboru: ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Zdálo by se není co dodat, ale to by se jenom zdálo... Ono první písmeno jména souboru je docela dùle¾ité... Tak¾e: 00h - neobsazená polo¾ka - tou konèí pro DOS adresáø a i kdy¾ jsou za ní nìjaké smysluplné polo¾ky, prostì jakoby nebyly... E5h - zru¹ený soubor. Tzn. pøi jeho mazání se vlastnì pouze modifikuje FATka a pøed polo¾ku se strèí tohle. DOS ji mù¾e kdykoliv vymìnit za nìjaký nový soubor, ale dokud se tak nestane, lze nìjak (kdy¾ máte ¹tìstí) polo¾ku obnovit... (pozn. - pokud chcete nìjakou polo¾ku ruènì z adresáøe vy¹kodit nìjakým diskeditorem, E5h dostanete kombinací ALT+229 na numerické klávesnici) 05h - nahrazuje E5h. Tzn. pokud chcete mít na zaèátku jména souboru E5h, máte díky 05h mo¾nost... 2Eh - (teèka) pokud je jedna, tak je to polo¾ka adresáøe, ve kterém právì je - ukazuje "sama na sebe" a musí být v ka¾dém podadresáøi. Pokud jsou dvì, ukazují na rodièovský adresáø a také musí být v ka¾dém podadreesáøi. no a cokoliv jiného je prostì 1. znak... :) Pøípona jména je bez problémù. ³ Atributy souboru: ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ- Tak to u¾ je opìt zajímavé. Co bit to atribut, tak sledujte: Bit 0 - ReadOnly soubor - jenom pro ètení. Kdy¾ ho otevøete DOSem pro zápis, zaène nadávat. Bit 1 - Hidden soubor - skrytý soubor. Nejni zahrnut do norm. DOSového hledání v adresáøi. Bit 2 - System soubor - toté¾ co Hidden, System soubor je vìt¹inou toti¾ i Hidden... Bit 3 - Polo¾ka (jméno+pøípona) oznaèuje název disku (proto je omezen 11ti písmeny, pokud jste si øíkali proè zrovna takhle blbì...). Kdy¾ existuje jinde ne¾ v koøenovém adresáøi, nedìlá to dobrotu... Bit 4 - Polo¾ka ukazuje na podadresáø (vìt¹. size=0!) Bit 5 - Archivní bit - viz dokumentace k pøíkazùm BACKUP a RESTORE. Pokud je nepou¾íváte, mù¾ete si ho vyu¾ít k vlastním úèelùm - je nastaven pøi ka¾dém zápisu do souboru a nulován právì BACKUPem - potom pozná který soubor se od posl. zálohování zmìnil. Pozn.: ne, není to náhoda, ¾e tato maska shoduje s konstantami v Ccku i v TurboPascalu :) ³ Èas souboru: ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Urèuje èas poslední modifikace souboru: ³ MSB ³ LSB ³ hh=bin. èíslo 0-23 (hodiny) ÃÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´ mm=bin. èíslo 0-59 (minuty) ³hhhhhmmm³mmmsssss³ ss=bin. èíslo sekund ve dvousekundových ÃÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄ´ pøírustcích ³15 0³ Èas je ulo¾en v poøadí LSB MSB ³ Datum souboru: +ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Urèuje datum poslední modifikace souboru: ³ MSB ³ LSB ³ rr=rok, 0-119 (1980-2099) ÃÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´ mm=mìsíc, 1-12 ³rrrrrrrm³mmmddddd³ dd=den, 1-31 ÃÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄ´ ³15 0³ Datum je ulo¾en v poøadí LSB MSB ³ Èíslo prvního AB: ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ- Urèuje èíslo prvního alokaèního bloku (clusteru) ve kterém je ulo¾en soubor (min. è. 2) - blí¾e viz FATka. Velikost souboru v je v bytech, není co dodat. Tak, to bychom mìli toto. Pøí¹tì se koukneme na poslední èást, a to na FAT tabulku. Pokud nìkdo nìèemu nerozumíte, neostýchejte se a v pohodì mailujte na pasky@pruvodce.cz, ceres@post.cz nebo pasky@libra.sinus.cz nebo na nìjaký jiný mùj e-mail (pasky@cyberspace.cz, kkcc@poboxes.com, apod...), pokud je vám jedno ¾e si toho v¹imnu tak do jednoho roku... Tak pac a pusu, pasky. Jakmile sesmolím tøetí èást, dopøedu ji najdete na adrese http://fly.to/pasky nebo pokud se vám nelíbí reklama tak http://lide.pruvodce.cz/pasky Hodnì ¹tìstí! (definitivnì dokonèeno, zformátováno a pøipraveno k odeslání v hvìzdné datum 31081999/2025) ÄÄ - (:c:) Pasky 1999 - http://fly.to/pasky - ceres@post.cz - pasky@libra.sinus.cz ÄÄ- PostScriptum: Omlouvám se za prùbì¾né mìnìní háèkování znakù, mùj nenapra- vitelný zlozvyk :) $END