Majme 5,25" disk, ktor budeme formtova nsledovne: 512 bytov sektory, 9 sektorov na stopu, 40 st na stranu a 2 strany. To mme celkom: 512 * 9 * 40 * 2 = 368640 bytov a teda 360 kB. Odtia mme ihne uri parameter SPT, o je poet logickch sektorov o vekosti 128 bytov na stopu. => SPT = 512 / 128 * 9 = 36 Pre systm potrebujeme napr.: 0080h (BOOT) + 0800h (CCP) + 0E00h (BDOS) + 0380h (BIOS) = 1A00h bytov a to je 13 fyzickch sektorov. Take pre systm potrebujeme vyhradi dve systmov stopy. Nebudcel vyuit, ale ned ni robi. Offset (OFF) od zaiatku disku mus by v celistvch stopch. => OFF = 2. Pre vpoet dostupnej kapacity disku musme systmov stopy odpota: 368640 - 512 * 9 * 2 = 359424 bytov, take mme predbene k dispozcii 351 kB. Teraz sa musme rozhodnpre vekos alokanho bloku (alej AB), pretoe vekos AB ovplyvje vinu parametrov v tabukch disku. Vekos AB, teda BLS (block size), m by 1kB, 2kB, 4kB, 8kB alebo 16kB. Pre floppy disky sa BLS vinou vol tak, aby celkov poet AB (DSM + 1) bol maximlne 256, teda aby sa slo AB volo do jednho bytu. Ak je poet AB v ako 256, tak slo AB je pochopitene v dvoch bytoch a do jednej adresrovej poloky sa vojde iba polovin poet sel pridelench AB, m sa rchlejie spotrebujadresrov poloky. Naopak, vek AB m tnevhodu, e aj sor, do ktorho zapeme pr bytov, zaber na disku cel AB, m sa zasa rchlejie obsadzuje von miesto na disku. Voba vekosti AB je teda zvyajne uritm kompromisom. V naom prpade zvolme BLS = 2kB, aby sa slo AB volo do jednho bytu: 351kB / 2kB = 175 alokanch blokov. Je vidie, e na disku bude nevyuit 1kB (2 fyzick sektory). Take mme => BLS = 2kB => DSM = 174 (posledn slo AB) Nsledne vypotame alie poloky tabuliek: BSH (block shift) je dvojkov logaritmus potu logickch sektorov v AB. => BSH = LOG2(BLS / 128) = 4 Pozn. dvojkov logaritmus mme vypota pomocou prirodzenho logaritmu LN a to nasledovne: LOG2 x = LN x / LN 2 BLM (block mask) je poet logickch sektorov v AB mnus 1. => BLM = BLS / 128 - 1 = 15 EXM (extent mask) je maska rozrenia a urme ju z tabuky na strane 181 tej "naej" knihy z hodn BLS a DSM. => EXM = 1 DRM (directory max) je maximlny poet poloiek adresra mnus 1. Vhodn, i optimlny poet adresrovch poloiek op zvolme "odhadom" poda DSM a BLS. Adresr vdy zaber celistv poet AB. Jedna poloka adresra zaber 32 bytov, take do jednho AB sa vojde (BLS / 32) poloiek. Poda tejto hodnoty sa me zroverozhodnuri, koko AB "obetujeme" adresru. Ak ozname poet AB pre adresr symbolicky DAB, tak potom mus plati: DRM = (DAB * (BLM + 1) * 4) - 1 alebo opane DAB = (DRM + 1) / (4 * (BLM + 1)) V naom prpade nm bude postaova 64 poloiek adresra a teda: => DRM = 63 (posledn slo adresrovej poloky) => DAB = 1 (jeden AB pre adresr) AL0, AL1 (allocated) predstavujprv dva byty alokanej mapy. Pri inicializcii disku sa tieto dva byty prekoprujdo alokanej mapy, m sa AB uren pre adresr okamite oznaia ako obsaden. Kad bit v alokanej mape predstavuje jeden AB. 7. bit AL0 rezervuje 0. AB, 6. bit AL0 rezervuje 1. AB, a 0. bit AL1 rezervuje 15. AB. Celkom teda m by pre adresr vyhradench 16 AB. To predstavuje maximlne 512 adresrovch poloiek, ak je BLS=1kB, prpadne maximlne 8192 poloiek, ak je BLS=16kB. V naom prpade adresr zaber iba jeden AB (DAB=1) a preto nastavme iba 7. bit AL0. => AL0 = 128 => AL1 = 0 CKS (check sum) - poet logickch sektorov testovanch na neregulrnu vmenu mdia. U vmennho mdia CKS = (DRM + 1) / 4, u pevnho mdia CKS = 0. U ns: => CKS = 16 Potrebujeme ete prekladovtabuku. Pouijeme skew-factor napr. 4, ale kee mme 4 logick sektory v jednom fyzickom sektore, tieto logick sektory v rmci prekladovej tabuky "zdrume", o nm potom uah transformciu logickho sektora na fyzick. Take poradie logickch sektorov v prekladovej tabuke bude: 1,2,3,4,17,18,19,20,33,34,35,36,13,14,15,16,29,30,31,32,9,10,11,12,25,26,27,28,5,6,7,8,21,22,23,24 Poet poloiek XLT tabuky mus by rovn SPT. Buffer DIRBUF mus ma vekos 128 bytov a je spolon pre vetky jednotky. Tabuka DPB m by spolon pre jednotky s rovnakmi parametrami. Buffer CSV mus ma vekos CKS bytov a mus by samostatn pre kadjednotku. Buffer ALV mus ma vekos (DSM / 8) + 1, a mus by samostatn pre kadjednotku. Kee mme fyzick sektor v ako logick nesmieme zabudnna blokovac-deblokovac algoritmus pri tan a zpise sektora. Ten je popsan v "naej" knihe od strany 185. Na zver vsledn tabuky nho disku: DPH0: DW XLT0 DW 0,0,0 DW DIRBUF DW DPB0 DW CSV0 DW ALV0 XLT0: DB 1,2,3,4,17,18,19,20,33,34,35,36,13,14,15,16,29,30,31,32,9,10,11,12,25,26,27,28,5,6,7,8,21,22,23,24 DPB0: DW 36 ; SPT DB 4 ; BSH DB 15 ; BLM DB 1 ; EXM DW 174 ; DSM DW 63 ; DRM DB 128 ; AL0 DB 0 ; AL1 DW 16 ; CKS DW 2 ; OFF DIRBUF: DS 128 CSV0: DS 16 ALV0: DS 22