Konference: SAPI-1 a československé mikropočítače
Od: | Roman Bórik |
Datum: | 1.3.2012 19:14 |
Předmět: | Re: Oziveni PMD32-SD na Sapi |
> Tak ted mi prosim Romane rekni, proc kdyz je na diskete sektor 1-26, > tedy celkem 26 sektoru, musi se PMD konfigurovat na 27 sektoru. > Ted uz to jede. -:) Môžem sa mýliť, ale nemôžem sa zbaviť pocitu, že si tým svojim"šachovaním" s číslovaním sektorov a úpravou XLT tabuľky, aby bola od 0, iba robíš
viac chaosu, ako v tom CP/M je ;-) Ako som už bol písal, PMD 32-SD vyžaduje číslovanie sektorov od 0 po N-1,kde N je počet logických sektorov na stopu (parameter SECTORS_PER_TRACK v images.cfg). A je na BIOSe a ovládači, aby tento rozsah dodržal. Pokiaľ sa požaduje od PMD 32-SD sektor s číslom, ktoré je mimo tento rozsah, tak to samozrejme musí skončiť iba chybou. Takže si prever prípravu a transformáciu čísla sektora. Pre úplnosť uvediem ešte drobné detaily. BDOS interne vždy používa intervaly 0 až N-1, či už sa jedná o sektory, stopy alebo alokačné bloky. Keď sa chystá BDOS čítať z nejakého alokačného bloku (konkrétne jeden logický sektor v rámci alokačného bloku), za pomoci parametrov z tabuľky
DPB vypočíta číslo stopy a sektora v rámci fyzického disku, kde sa
požadovaný sektor nachádza. K vypčítanému čislu stopy pripočíta ešte parameter OFF
z DPB a s touto hodnotou zavolá rutinu SETTRK v BIOSe. S vypočítaným číslom sektora zavolá rutinu SECTRAN, ktorá mu vráti transformované číslo sektora
s touto hodnotou zavolá rutinu SETSEC. Rutiny SETTRK a SECTRAN sú volané VŽDY s hodnotami v intervale 0 až N-1. Rutina SETSEC je volaná s hodnotou, ktorá je vrátená rutinou SECTRAN a tá
je už závislá od jej implementácie a tabuľky XLT. Samozrejme záleží aj od toho, ako sa naloží s hodnotou čísla sektora v rutine SETSEC, či sa nerobí nejaká úprava +-. Roman
[2012/1 (114)] [2012/2 (102)] [2012/3 (30)] [2012/4 (9)] [2012/5 (18)] [2012/6 (32)] [2012/7 (143)] [2012/8 (197)] [2012/9 (161)] [2012/10 (43)] [2012/11 (90)] [2012/12 (37)]