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)]


[2010 (676)] [2011 (586)] [2012 (976)] [2013 (538)]