> > cel az volt, hogy a 8085-osre irt programok a szegmens beallitasa
> > utan futtathatok legyenek. Ez igy is van, ilyenkor a szegmens fix,
> > a program pedig max. 64kB
> Jo, de hat attol, hogy ketszer 16 bitet egymas melle' teszunk,
> me'g megmeradhatott volna ez a kompatibilitas.
Na ja, de az elso gepben (amit ugy hivtak, hogy PC) 256kB RAM volt
osszesen. Ez igy 4 lehetseges szegmens lenne, amibol az elso foglalt a
rendszervaltozoknak es a DOS-nak. Igy viszont, ahogy megoldottak, akar
16 byte-onkent be lehet tolteni egy 8085-os programot (ha elfer - ha
pedig nem, akkor is max 15 byte kihasznalatlan ket program kozott a
meregdraga memoriabol).
> >en sem ertem, hogy miert nem csinaltak a processzort olyanra,
> >hogy 8 bittel tolja el a cimet es a szegmens felso 4 bitjet eldobja.
> Nem ertelek. Ez gyakorlatilag ugyanaz lenne. Tologatas.
Ezzel a "tologatas"-sal meg 4-6 eve is eleg lett volna (16MB) a
cimtartomany a programoknak (az adatok mehetnenek az expanded/extended
memoriaba, mert azokat nem kell futtatni), valamint a kezdeteknel is
eleg rugalmas lett volna.
> Ahogy a papiros irogep is IO-n at kommunkialt, kezdetben a videoRAM
> is IO-n at kerult frissitesre. Unix volt ilyen. (Starters mondta :-))
Igen: ez ugy mukodott, hogy a konzol es a fo gep IO-n beszelgetett, majd
az adatok bekerultek a konzol memoriajaba, ahonnan az kijelezte.
> A videoRAM viszont fizikailag a videokartyan van. A kartya HW
> (+ a szinten beillesztett ROM rutin?) intezi, hogy a normal RAM
> reszenek tunjon, na meg az analog videojel eloallitasat.
A video ROM ebbe nem szol bele. Ezt a HW intezi egyszeru logikai
kapukkal ugy, hogy a buszon reagal a megfelelo cimekre: ha olyan
tartomanybol erkezik cim, amirol ugy tudja, hogy az ove, akkor
engedelyezo jelet kuld a sajat memorianak (amelyik megkapja a cimet is
az iro/olvaso jelekkel egyutt).
> meg egy pixelt. Es hogy hogyan. A videoRAM ertelmes feltoltesehez
> szinten kell egy BIOS rutin, hogy a felhasznalo ne a videoRAM
> cimeivel vacakoljon, hanem eleg legyen megadni a kirajzolando
> pixel helyet es szinet. Meg ugy altalaban a kep tulajdonsagait.
Ebbol a kep beallitasa ALTALABAN rendesen van megirva a BIOS-ban.
Van rutin egy pixel kiirasara is, azonban ez annyira lassu, hogy szinte
soha nem hasznaljak. Leteznek kepernyokezelo programgyujtemenyek,
kozepes sebesseggel es hasznalhatosaggal. Aki gyors vagy kicsi(kB)
rutint akar, megirja maga.
> szabvanyu kepek eltero mennyisegu memoriat igenyelnek.
> A szininfo mellett villogasra vonatkozo bit is lehet.
> Ha 1 pixelt csak 1 bit jelol, akkor a tinta es hatter szinet
> mint a kep egeszere vonatkozo infot kell megadni.
Hatter ilyenkor nincs, es a CGA-n van olyan uzemmod, ahol 1 pixel 2 bit
es ugyanigy mukodik. Valahol letezik olyan kijelzo is, ahol grafikus
kepet is lehet villogtatni, de a PC-n csak a 160*100-as, nem szabvanyos
modnal (es ott is csak korlatozottan).
> 320*200*2 = 128 000bit = 16 000bajt = 16kB = 15,625KB. Stimmel.
Nekem a kB es a KB is 1024Byte. Ha 16 ezer byte-ot akarok irni, azt igy
irom.
Megoldhato a 320*204-es (es a 160*102-es) kijelzes is (CRT-n, az LCD
altalaban nem tudja), csak egyik sem szabvanyos.
> De mi az, hogy keretszin egy PC-n? Mint a Spectrumon a border volt?
Pontosan. Sok program hasznalja is - nem lattal meg ilyet? EGA-tol a
keret mar csak nehany mm.
> Es miert van ez a ket keszletbol valo valaszhatosag?
> Az egesz kepernyo vagy a-b-c-d szinekbol vagy e-f-g-h szinekbol all?
Igen, es 1 pixelre 2 bit mondja meg, hogy melyik ebbol a 4-bol.
> (kizaro vagy) Hogyhogy 1 szin szabadon valaszhato? Miert csak 1?
IO jellel lehet valasztani: az egyik paletta szinei: piros, sarga, zold
- a masike turkiz, lila, feher. A negyedik mindkettonel szabadon
valaszthato a 16-bol, de a keret is ilyen lesz. Azert ilyen, mert, csak
- orulj neki, hogy nem kell a mono MDA monitort bamulnod, mert meg csak
az van :-()
640*200-as uzemmodban egy szin valaszthato a masik fekete, ha jol
emlekszem.
A keret (amely ugy is beallithato, hogy az egesz kepet elfoglalja) es
(grafikus modban) a szinek vezerlesevel lehet effekteket csinalni a CGA
kartyan. Ha mar a Spectrumot emlited: egy rendes Spectrum emulator a
betolteskori csikokat is mutatja, ha magnorol jon a jel.
Sajnos a Herc. kartya - bar a CGA utan keszult - nem tud fenyes keretet,
sem normalis karakterjellemzoket: pl. ha a karakter eloterszine
megegyezik a hatterrel, akkor nem lenne szabad latszania, ha pedig a
hatterszin nagyobb, mint az eloter, akkor inverz karakter kellene. Jo
lenne, ha az alahuzott inverz karakteren latszana is az alahuzas... Ez
meg olcsobb is lenne, mint amilyen megoldast kitalaltak - csak
gondolkodni kellett volna vele ;-(
> Na most jon az a kerdes, hogy mitol fugg, hogy egy kartya nem
> CGA hanem pl. EGA? Nagyobb memoria es egyre tobbfele keppen
> ertelmezhetok a videoRAMban tarolt bajtok?
Igen, plusz a kartya masfele IO jeleket is kezel, az EGA-nak kotelezo a
video BIOS - tehat masfele szabvany. A programnak, amelyik kezelni
akarja, ki kell deritenie, hogy melyik kartya van jelen, vagy BIOS-on
keresztul, karakteres modban kell kezelnie.
> > SW trukkel megoldhato ugyanez a felbontas, 2 szinarnyalattal
> > - de 25 Hz frekvencival, es mindket lap kell hozza
> > + egy rezidens program.
> 1 helyett 2 arnyalat, cserebe mindket lap kell hozza, ez OK.
> De hogyan jon ide a 25Hz? Gondolom ez a kiolvasas sebessege,
> de hat annak mi koze a felbontashoz vagy a szinarnyalathoz?
> Egyebkent talan 50Hz lenne? Egy monitor megsem TV.
A Herc. kartya alapesetben 50Hz. A rezidens program azt figyeli, hogy az
elektronsugar eppen a fuggoleges visszateritesben van-e: ha igen,
atallitja a kepernyolapot, igy a kovetkezo kepet mar a masik memorialap
adja. A kepernyon a pontoknak igy 2 arnyalata lehetseges, de csak
25Hz-el.
> > Az MDA ugyanez, de csak 80*25 karakteres, 4kB RAM-mal.
> MDArol toled hallottam eloszor. 4000bajt / (80*25chr) = 2 bajt / chr.
> Itt talan ascii kodokat ir a szgep "videoramba"?
> A kartyan van karaktergenerator, ami feltolti az igazi,
> folyamatos kiolvasas alatt allo videoramot? Hogy van ez?
Igen, de nem a RAM-ot tolti, hanem (a jellemzoit is figyelembe veve)
kikuldi videojelnek - igy mukodik minden videokartya karakteres
uzemmodban.
> >EGA: itt mar programozhatoak a szinek: egyszerre 16 szin lathato a
> >lehetseges 64-bol, max. 256KB RAM. Kegyetlenul bonyolult a kezelese.
> Hogyhogy itt mar proghato'k a szinek? Mit ertesz azon, hogy proghato'?
Ugy, hogy a legnagyobb EGA felbontas 16 szinu, azonban ezeket a szineket
kulon programozni lehet IO utasitasokkal, a 3 osszetevot 2-2 biten.
Kivalo effekteket lehet vele csinalni.
> Beallithato? A CGA-nal talan nem voltak azok??
A Herc./CGA meg nem tud ilyet. Fix 2, ill. 16 szinu.
> >VGA (nem SuperVGA): mindharom szinosszetevo 8 biten programozhato,
> >igy gyakorlatilag barmilyen szin beallithato - egyszerre max. 256 latszik.
> Miert is van ez az egyszerre-max.256 megkotes? Egy pixelre ezek szerint
> itt is csak 1 bajt jut, es elore kell szinhalmazt valasztani??
A VGA-n meg igen. Az SVGA 2 (3) m-el kesobb jon...
> Ertem! A sok foRAMba "beillesztett" kulso RAM es ROMrol jut eszembe,
> ennyi erovel nem is ertem, hogy minek kellenek driver progik a
> legkulonbozo kutyukhoz, amiket a PChez kapni.
> Mindegyikbe tehetnenek egy ROMot, amint minden rajta van. Nem?
Isten orizz! A ROM max. 32 (esetleg 64) kB, csak az alaprutinok fernek
bele
(inicializalni is kell a kartyat + at kell irni az eredeti BIOS
rutinokat is, mert azok meg csak a CGA-t ismerik.
<Ez ugy szokott tortenni, hogy a program atirja a rendszervaltozokban a
megszakitasi cimeket a sajatjara - es elteszi maganak a regi cimet. Ha
jon a megszakitas, megnezi, hogy neki szol-e: ha igen, lekezeli, ha nem,
atadja a vezerlest a regi cimre.>
Ehhez a programhoz hely is kell, ezert van olyan, hogy a video ROM 64
kB, indulaskor az elso 32, utana atkapcsolja magat).
A driverek viszont sokkal nagyobbak is lehetnek es sokkal gyorsabban is
fejleszthetok, mint a kartya ROM-ja. Maskepp, amikor a DOS-rol attersz a
Win.-ra, vagy a Win(x)-rol a Win(x+1)-re, kartyat, vagy kartya ROM-ot is
kellene cserelned, vagy frissiteni, mint az ujabb alaplapokon vagy
modemekben - es a regi rendszered esetleg mar nem futna utana!
|