CP/M 2.2 nemá prostriedky na označenie vadných blokov. MS-DOS si naformátoval disketu a vadné bloky zneprístupnil. Nielen že CP/M nemá definovaný štandard pre diskety, ale CP/M nemá ani len formátovací program :-) Niektorí vendori dodávali vlastný neštandardný formátovací program. Niektorí dokonca nútili ľudí kupovať si od nich naformátované diskety, a formátovací program nedodávali. Pochopiteľne z tohoto dôvodu vznikla spústa rôznych navzájom nekompatibilných formátov. Takže ako to bolo s tými vadným sektormi? Boli na to rôzne programy. Napríklad "reclaim.com" alebo "fbad.com" Tieto programíky vytvorili na disku file s názvom UNUSED.BAD, alebo CRCERR.BAD a podobne. Tento file mal priradené práve vadné sektory. Tento file potom už samozrejme nebolo vhodné zmazať:-) Aby nestrašil medzi ostatými files, bolo ešte možné ho priradiť userovi č.15 a tým ho zneviditeľniť. Väčšina ľudí pracovala pod user č.0.
CP/M teda nemá jednotný formát ani veľkosť sektorov. Každý vendor si zvolil čo mu vyhovovalo. CP-M začínalo na 8" jednostranných SD-single density disketách s 26 sektormi (po 128 byte) na track a 77 tracks. Na takomto formáte a médiu dodávalo DRI CP/M pre vendorov. Postupne sa prechádzalo na DD-double density diskety, veľkosť sa zmenšovala na 5,25" a začali sa používať väčšie veľkosti sektorov. Posledné verzie CP/M od niektorých vendorov už pracovali s 3,5" HD-high density disketami a sektormi veľkými až 1024 byte.
Pre porovnanie - v MS-DOS sú veľkosti sektorov vždy 512 byte. Povolené formáty su tri.
CP/M pre NCB85 teda môže používať ľubovoľný formát diskiet. Ja som napísal programík, ktorý formátuje diskety s 256 bytovými sektormi. Podporuje 4 typy disket. Tri sú 5,25" a jeden 3,5". Že tri?! Áno. Zo sveta PC sú známe dva 5,25" typy. Jeden je 360kB, má 40 tracks a 9 sektorov na track, potrebuje DD diskety. Druhý je 1,2MB, má 80 tracks a 15 sektorov na track, potrebuje HD diskety. A ten tretí? Dostali sa mi do rúk netypické disketovky TEAC FD-55F. Majú kapacitu 720kB, 80 tracks ale pracujú iba s DD disketami, teda 9 sektorov na track. Štvrtý formát sú najrožšírenejšie 1,44MB 3,5" HD diskety. Majú 80 tracks a 18 sektorov na stopu.
Po voľbe veľkosti sektorov na 256 byte, je treba zvoliť ďalšie parametre pre file system. Koľko stôp sa vyčlení pre systém, veľkosť alokačného bloku, max počet záznamov v adresári atď.
BDOS čísluje sektory od 0. Radič PC8477B podporuje aj sektory s číslom 0, preto nie je na čísla sektorov potrebná prekladová tabuľka.
PMD32SD má definované 2MB virtuálne disky
; Tabulka diskovych parametrov: | ||||
; disketa o velkosti 2MB | ||||
; 256 stop(dve strany), 64 sektorov na stopu | ||||
; 1020 alokacnych blokov o velkosti 2kB | ||||
; 256 adresarovych poloziek | ||||
; 1 systemova stopa | ||||
DPB: | ||||
dw | 64 | ; SPT - pocet logickych sektorov na stopu | ||
db | 4 | ; BSH - posun bloku | ||
db | 15 | ; BLM - maska bloku | ||
db | 0 | ; EXM - maska rozsirenia | ||
dw | 1019 | ; DSM - velkost disku-1 | ||
dw | 255 | ; DRM - velkost adresara-1 | ||
db | 240 | ; AL0 - alokacna maska adresara | ||
db | 0 | ; AL1 | ||
dw | 64 | ; CKS - velkost pola kontrolnych suctov | ||
dw | 1 | ; OFF - pocet systemovych stop |
Pre diskety som zvolil nasledovné parametre:
Diskety 5,25" DD
; Tabulka diskovych parametrov: | ||||
; 5,25" disketa o velkosti 360kB(DOS aj CP/M) | ||||
; 40 stop(dve strany), 18 (256 byte) sektorov na stopu, 1440 sektorov celkom | ||||
; 179 alokacnych blokov o velkosti 2kB (prva stopa je systemova) | ||||
; 64 adresarovych poloziek (1alok.blok x 16sec/blk x 4entry/sec) - adresar zabera 1 alokacny blok | ||||
; 0 systemových stôp | ||||
DPB: | ||||
dw | 72 | ; SPT - pocet logickych sektorov na stopu | ||
db | 4 | ; BSH - posun bloku | ||
db | 15 | ; BLM - maska bloku | ||
db | 1 | ; EXM - maska rozsirenia, 32kB na extent | ||
dw | 179 | ; DSM - velkost disku-1 | ||
dw | 63 | ; DRM - velkost adresara-1 | ||
db | 128 | ; AL0 - alokacna maska adresara | ||
db | 0 | ; AL1 | ||
dw | 16 | ; CKS - velkost pola kontrolnych suctov | ||
dw | 0 | ; OFF - pocet systemovych stop |
Diskety 5,25" DD v 80 tracks mechanike (na PC sa nepoužívali)
; Tabulka diskovych parametrov: | ||||
; 5,25" disketa o velkosti 720kB(CP/M) | ||||
; 80 stop(dve strany), 18 (256 byte) sektorov na stopu, 2880 sektorov celkom | ||||
; 355 alokacnych blokov o velkosti 2kB (prva stopa je systemova) | ||||
; 128 adresarovych poloziek (2x16x4) - adresar zabera 2 alokacne bloky | ||||
; 1 systemova stopa | ||||
DPB: | ||||
dw | 72 | ; SPT - pocet logickych sektorov na stopu | ||
db | 4 | ; BSH - posun bloku | ||
db | 15 | ; BLM - maska bloku | ||
db | 0 | ; EXM - maska rozsirenia | ||
dw | 354 | ; DSM - velkost disku-1 | ||
dw | 127 | ; DRM - velkost adresara-1 | ||
db | 192 | ; AL0 - alokacna maska adresara | ||
db | 0 | ; AL1 | ||
dw | 32 | ; CKS - velkost pola kontrolnych suctov | ||
dw | 1 | ; OFF - pocet systemovych stop |
Diskety 5,25" HD
; Tabulka diskovych parametrov: | ||||
; 5,25" disketa o velkosti 1.2MB(DOS)/1.04MB(CP/M) | ||||
; 80 stop(dve strany), 26 (256 byte) sektorov na stopu, 4160 sektorov celkom | ||||
; 513 alokacnych blokov o velkosti 2kB (prva stopa je systemova) | ||||
; 256 adresarovych poloziek (4x16x4) - adresar zabera 4 alokacne bloky | ||||
; 1 systemova stopa | ||||
DPB: | ||||
dw | 104 | ; SPT - pocet logickych sektorov na stopu | ||
db | 4 | ; BSH - posun bloku | ||
db | 15 | ; BLM - maska bloku | ||
db | 0 | ; EXM - maska rozsirenia | ||
dw | 512 | ; DSM - velkost disku-1 | ||
dw | 255 | ; DRM - velkost adresara-1 | ||
db | 240 | ; AL0 - alokacna maska adresara | ||
db | 0 | ; AL1 | ||
dw | 64 | ; CKS - velkost pola kontrolnych suctov | ||
dw | 1 | ; OFF - pocet systemovych stop |
Diskety 3,5" HD
; Tabulka diskovych parametrov: | ||||
; 3.5" disketa o velkosti 1.44MB(DOS)/1.28MB(CP/M) | ||||
; 80 stop(dve strany), 32 (256 byte) sektorov na stopu, 5120 sektorov celkom | ||||
; 632 alokacnych blokov o velkosti 2kB (prva stopa je systemova) | ||||
; 256 adresarovych poloziek (4x16x4) - adresar zabera 4 alokacne bloky | ||||
; 1 systemova stopa | ||||
DPB: | ||||
dw | 128 | ; SPT - pocet logickych sektorov na stopu | ||
db | 4 | ; BSH - posun bloku | ||
db | 15 | ; BLM - maska bloku | ||
db | 0 | ; EXM - maska rozsirenia | ||
dw | 631 | ; DSM - velkost disku-1 | ||
dw | 255 | ; DRM - velkost adresara-1 | ||
db | 240 | ; AL0 - alokacna maska adresara | ||
db | 0 | ; AL1 | ||
dw | 64 | ; CKS - velkost pola kontrolnych suctov | ||
dw | 1 | ; OFF - pocet systemovych stop |
Pre porovnanie v MS-DOS sú alokačné bloky 1024 byte pre diskety 360kB a 512 byte pre diskety 1,2MB a 1,44MB.
No comments:
Post a Comment