Konference: SAPI-1 a československé mikropočítače
Od: | EC1045 |
Datum: | 1.9.2011 14:38 |
Předmět: | Re: Re: RE: GENEROVANI CP/M 2.2 |
tak jsem se dival do manualu k ROBOTRONu 1715 tak umi i 80stop a ma bit osazen 8272 ale ten co jsem mel rozdelan tak mel udelavy radic z IO a dal jsem to zatim neskoumal ale asi se na to brzi vrhnu ale musi existovat nejaky trik jak donutit 8272 abi codila i nad 76 stopou protoze prvni PeCky AT meli 8272 a pouzivali DS HD dislkety a take existuji pro 8bity radice osazene 8272 a tez hodi nad 76 stopu napr pro ZX spectrum a jeho klony. at jsem hledal jak jsem hledal tak jsem vzdy narazil na to ze radic s 8272 umi 80 stop ale nikde nebilo uz popsano ci naznaceno jak se tam dostat. zacinam mit pocit ze je to tajemstvy o ktere se nikdo nechce delit abi na tom mohl videlavat > > Dekuji Romane za naprosto vycerpavajici informace k problemu. Zkusim > to pochopit a na prikladech znamych tabulek odkontrolovat priklady > na 5,25 ky a PMD SD co jsi poslal Honzovi. Zitra jedu do HK a > schvalne se zkusim zastavit ve vedecky knihovne, zda se ta kniha da > nekde pujcit. > Mam v planu zkusit udelat velky, asi 2MB baterkou zalohovany Ramdisk > na principu zapojeni existujici ROM-1. Budu potrebovat vytvorit > tabulky na ten Ramdisk a taky na 76 stopy 5,25 a 3,5 diskety. Obavam > se, ze 8272 se na vic stop znasilnit neda, nebo jsem zatim na to > neprisel jak. Aspon tedy u bulharsky CM 609. Tedy za 76 stopu se > dostanu, ale nelze tam formatovat a zda to jde nejak ocurat nevim. > Ted bude na tahu Petr, aby zjistil, jak to je udelany v Robotronu > 1715 ze 5,25 diskety jsou kompatibilni s PC. Ale mam podezreni, ze > jen pro 360 Kb. Ja mam zbozny prani se dostat s 3.5 a 5,25 aspom na > 700-800 Kb. > Jinak dnes jsem badal nad tim Boot a Wboot. Je to udelany zajimave v > 0 stope se cte 25 sektoru 5 x 5 sektoru a na preskacku s posuvem o 5 > sektoru. V 1. stope to samy, a pak se cte 1 sektor samostatne. > Vysledek je asi 5 nasobny zrychleni nacteni stopy, protoze se behem > 1 otacky diskety nacte 5 sektoru. Je to podobne principu SKEW v > Biosu. Tohle treba neni pouzity v Sysgenu a proto kopie systemu je > asi 4-5x pomalejsi nez jeho zatazeni pri Bootu. > Jirka > > > > > > > Jak jsem se hrabal v novejch systemech a delal > > > zmeny, tak jsem vyzkousel > > > > i jakesi setreni RAMky pro Bios. Uvodni vypisy > > > po spusteni CPM a hlasky > > > > o spatne verzi a chybe pri bootu jsem nacpal na > > > konec biosu a ukoncil je > > > > .DEPHASE. Uplne na konci mam CHK_ a ALL_ pro > > > disky a 128 byte DIRBUF. > > > > Pred tyhle hlasky jsem dal .PHASE ?zacatek tech > > > textu?. Protoze jsou > > > > hlasky potreba jen dokud se poprve neskoci do > > > CCP, tak jsem presvedcenej, > > > > ze jsou v pameti zbytecne. Na jejich misto se > > > po! sune CHK_, ALL_ > > > > a DIRBUF. > > > > Áno. To je bežná prax, že sa pri studenom štarte > > buffre pre CHK, ALL a DIRBUF využívajú pre kód, > > ktorý už potom nie je potrebný. Musí to byť ale > > dobre premyslené. > > > > > U me je to ?zkraceni biosu? o 180 byte, coz > > > skoro 1/5 dylky celyho biosu. > > > > Pro biosy dlouhy do 400H jen na systemovych > > > stopach to maka perfektne. > > > > Jenze ted co delam ty dlouhy biosy 800H s > > > ulozenim zbytku do nevyuzitych > > > > sektoru na 76 stope jsem narazil u tohodle > > > ?zkraceni biosu? na jeden > > > > problem. U boot sektoru to je jasny, ze musim > > > natahnout uplne celej > > > > system a spustit. Ale co u WBOOT? Tam by se sice > > > nemela vypisovat uvodni > > > > hlaska ale muze to skoncit na chybe nacitani > > > systemu a potom by chybel > > > > text pro hlasku Boot error, protoze na jeho > > > miste by byly ALL_ a CHK_ > > > > a DIRBUF. Znamena to tedy pri WBOOT natahovat > > > taky uplne cely system? > > > > > Obvykle sa pri teplom štarte doťahuje iba CCP a > > BDOS. Celý systém, vrátane BIOSu, sa naťahuje > > zvyčajne iba pri bootovaní. > > Nebol by samozrejme problém naťahovať celý systém > > aj pri teplom štarte, to by ale malo za následok, > > že by to musel byť v konečnom dôsledku zrejme > > studený štart, lebo by sa doťahovaním celého BIOSu > > museli nainicializovať aj buffre, či tabuľky > > diskov, kde už BDOS mohol mať svoje behové > > informácie. Naviac, pokiaľ by bol systém aj v 76 > > stope (zbytok BIOSu), znamenalo by to seekovanie > > hlavy disku pri každom teplom štarte systému. > > Pokiaľ je potrebné vypisovať nejakú chybovú hlášku > > pri studenom aj teplom štarte, tak sa nedá nič > > robiť a ten text musí byť v časti kódu, ktorá > > "zostáva" v pamäti. > > > > > Mam v tom nejaky nejasnosti, navic jsem si > > > vsiml, ze pocatecni boot z 0 > > > > sektoru je jinaci, nez z WBOOTU. Proste se cte > > > jiny pocet sektoru > > > > a dokonce se ukladaji v jiny posloupnosti. Nad > > > timhle jsem nikdy nebadal > > > > a neni mi to moc jasny. Asi si budu muset tyhle > > > dva booty zkusebne > > > > naadresovat od 100H posunout body umisteni > > > systemu do Ram a odladit si > > > > to Slapem. Kdyz koukam do vypisu prekladu, tak > > > mi to nak nedava smysl. > > > > Mluvim treba o Bios0502 a Boot0502, co mam v > > > Sapiman. > > > > > BOOT kód samozrejme naťahuje celý systém, teda > > CCP, BDOS a BIOS a následne sa skáče do BIOSu na > > studený štart, kde sa robí počiatočná > > inicializácia. > > Pri teplom štarte sa opätovne doťahuje iba CCP a > > BDOS. Preto je počet čítaných sektorov menší ako > > pri BOOTe. CCP sa doťahuje preto, že spustený > > program môže slobodne využiť aj túto oblasť > > pamäti. BDOS sa doťahuje "pre istotu", keby nejaký > > program BDOS poškodil, alebo ho pre vlastné účely > > modifikoval. Ak by bol nejakým programom > > "zasiahnutý" aj BIOS, tak to pravdepodobne skončí > > nejakou "haváriou". > > Teplý štart robí oproti studenému štartu obvykle > > už iba nejaké "malé" inicializačné práce (napr. už > > sa nezisťujú pritomné mechaniky a pod.), riadenie > > sa vráti CCP a aktuálna mechanika a užívateľ sa > > berú z adresy 0004h (CDISK). > > > > > Jinak Ramdisky jsem vcera moril dva mezi sebou > > > neustalym kopirovanim > > > > s kontrolou asi 4 hodiny a ani jednou to > > > nespadlo do verify error. > > > > Vypada to, ze ty tabulky, co jsi napsal jsou v > > > poradku. Jeste mi prozrad, > > > > podle ceho je delas, zda to jen tak spocitas, ci > > > na to mas nejakej > > > > manual. DPB je mi snad podle par prikladu jasna, > > > ale jak vytvaris dylku > > > > ALL a CHK? Potreboval bych vyzkouset par atyp > > > disku a nechci Te s tim > > > > pokazdy zatezovat. -:)) > > > > Som rád, že RMD-1/1MB šlape. > > > > Nemám to, samozrejme, všetko z vlastnej hlavy, ale > > mám na to múdru knižku "Operační systém CP/M pro > > mikropočítače" od autorov Ing. Karel Richta a Ing. > > Jan Zajíc, z roku 1986, 286 strán. > > > > Tabuľka DPH (Disk Parameter Block): (v zátvorke je > > veľkosť položky) > > > > XLT (2) - adresa prekladovej tabuľky. 0, ak > > preklad logických sektorov na fyzické nie je > > potrebný. Veľkosť prekladovej tabuľky je SPT > > bytov. Ak XLT u niektorých diskov obsahuje adresu > > a u niektorých diskov je 0, musí byť zodpovedajúco > > upravená aj rutina TRANS, ktorá musí prípad > > nulového XLT ošetriť. > > WRK (6) - pracovná oblasť BDOSu > > DIRBUF (2) - adresa buffra (128 bytov) pre > > operácie s adresárom. Môže byť spoločná pre všetky > > jednotky. > > DPB (2) - adresa tabuľky parametrov disku. Pre > > jednotky s rovnakými parametrami môže byť DPB > > spoločná. > > CSV (2) - adresa zóny kontrolných súčtov. Jej > > veľkosť musí byť CKS bytov a musí byť samostatná > > pre každú jednotku. Ak je CKS = 0, CSV môže byť > > tiež 0. > > ALV (2) - adresa bitovej alokačnej mapy. Oblasť > > musí byť samostatná pre každú jednotku. Veľkosť > > tejto oblasti má byť (DSM / 8) + 1. > > > > DPH tabuľky musia byť v RAM, keďže sú BDOSom > > modifikované v ich pracovnej oblasti. > > > > Tabuľky DPB (Disk Parameter Block): (v zátvorke je > > veľkosť položky) > > > > SPT (2) - počet logických sektorov (128 bytov) na > > stopu. Ak je veľkosť fyzického sektoru väčší ako > > 128 bytov, je SPT rovný súčinu počtu logických > > sektorov na fyzický sektor a počtu fyzických > > sektorov na stopu. > > BSH (1) - block shift - dvojkový logaritmus počtu > > logických sektorov v alokačnom bloku - log2 (BLM + > > 1) > > BLM (1) - block mask - počet logických sektorov v > > alokačnom bloku mínus jedna > > EXM (1) - extent mask - maska rozšírenia - počet > > logických rozšírení (16kB) adresovaných jednou > > položkou adresára mínus jedna. Je určená veľkosťou > > alokačného bloku (BLS) a celkovým počtom > > alokačných blokov (DSM) takto: > > > > BLS DSM<256 DSM>255 > > 1kB 0 - > > 2kB 1 0 > > 4kB 3 1 > > 8kB 7 3 > > 16kB 15 7 > > > > DSM (2) - disk size max - veľkosť disku - celková > > kapacita diskovej jednotky v alokačných blokoch > > mínus jedna (číslo posledného alokačného bloku) > > DRM (2) - directory max - veľkosť adresára - > > maximálny počet položiek adresára mínus jedna. > > Adresár zaberá celistvý počet alokačných blokov. > > Každý logický sektor obsahuje 4 položky adresára, > > takže: > > DRM = (X * (BLM + 1) * 4) - 1 > > kde X je počet alokačných blokov adresára > > AL0,AL1 (1,1) - prvé dva byty bitovej mapy > > určujúce alokačné bloky rezervované pre adresár. > > Jednotka v 7. bite AL0 rezervuje 0. blok, v 6. > > bite 1. blok atď. až jednotka v 0. bite AL1 > > rezervuje 15. blok. > > CKS (2) - check sum - počet sektorov adresára > > testovaných na neregulérnu výmenu média. U > > výmenného média (DRM + 1) / 4, u pevného média 0. > > OFF (2) - offset - počet stôp rezervovaných na > > začiatku diskovej jednotky. Umožňuje to aj > > rozdeliť veľký pevný disk na viac logických > > jednotiek. > > > > DPB tabuľky nie sú BDOSom modifikované a teda môžu > > byť aj v ROM.
[2011/2 (7)] [2011/3 (12)] [2011/5 (50)] [2011/6 (18)] [2011/7 (112)] [2011/8 (192)] [2011/9 (94)] [2011/10 (16)] [2011/11 (46)] [2011/12 (39)]