Konference: SAPI-1 a československé mikropočítače
Od: | Jiri Biba |
Datum: | 31.8.2011 21:59 |
Předmět: | Re: Re: RE: GENEROVANI CP/M 2.2 |
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 ----- PŮVODNÍ ZPRÁVA ----- Od: "Roman Bórik (sapi tu byla ta zakroucena vec pandora.cz)" <roman.borik tu byla ta zakroucena vec netkosice.sk> Komu: "Konference 'SAPI-1 a československé mikropočítače'" <sapi tu byla ta zakroucena vec pandora.cz> Předmět: Re: Re: RE: GENEROVANI CP/M 2.2 Datum: 31.8.2011 - 20:47:39 > > > 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. > > > Roman > > --------------------- > sapi tu byla ta zakroucena vec pandora.cz > Konference o SAPI-1 > --- >
Ostatní příspěvky vlákna:
[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)]