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


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