home *** CD-ROM | disk | FTP | other *** search
- RENDSZERPROGRAMOZÅS ???.
-
- A BIOS I.
-
- Miután sikeresen kiveséztük a DOS-t lépjünk tovább és tekintsünk egy réteggel
- mélyebbre a számítógép belsô világába.
-
- A PC BIOS
-
- A BIOS (Basic Input/Output System - alapvetô ki-/beviteli rendszer) - mint neve is
- mutatja - a legelemibb ki-/beviteli funkciókat ellátó szoftver, amely minden PC-ben
- megtalálható. (Igazából a BIOS-okat nem is szoftvernek, hanem firmware-nek
- szokták hívni, mert olyan szoros egységet képeznek az alaplap hardverével.) A PC-
- kben több fajta BIOS is megtalálható. A rendszer BIOS-on kívül az EGA vagy
- fejlettebb video-rendszert tartalmazó gépekben egy video BIOS is található ami a
- megjelenítô egység vezérlését végzi. A bôvítô kártyák is rendelkezhetnek BIOS-
- okkal, amik speciális egységek vezérlését végzik (pl. LAN adapter - Boot eprom ;
- SCSI vezérlô - SCSI BIOS, stb.). Ezeken kívül minden rendszer tartalmaz egy
- billentyûzet-vezérlô BIOS-t (Keyboard Controller BIOS) is a billentyûzet-
- illesztôben.
-
- Bár a PC-kben több BIOS is található, a ROM BIOS szó alatt általában
- specifikusan a rendszer-BIOS-t (a továbbiakban BIOS) szokás érteni. A BIOS nem
- más, mint inicializációs rutinok és primitív eszközmeghajtók gyûjteménye. A BIOS
- elsôdleges feladata - szoftver-megszakításokon keresztül - olyan funkciók nyújtása,
- melyek segítségével egyszerû mûveletek végezhetôk el, mint olvasás vagy írás a
- merevlemezre, a hajlékonylemezes meghajtóra vagy a képernyôre. Ezen rutinok
- jelentôsége absztraktságukban rejlik: olyan eszköz-független szolgáltatásokat
- bocsátanak az operációs rendszer és a programok rendelkezésére, melyek a
- rendszerben installált konkrét eszköz típusától függetlenül, minden környezetben
- egységes módon teszik lehetôvé a minden egység által támogatott, de amúgy
- különbözô módon kiváltható funkciók elérését. A gyakorlatban ez azt jelenti, hogy
- például a video-megjelenítô típusától függetlenül, ugyanazzal a BIOS
- funkcióhívással lehet egy karaktert kiírni a képernyôre, annak ellenére, hogy
- például a különbözô adapterek video-memóriája eltérô címeken helyezkedik el, így
- közvetlen elérésük esetén nem lehetne - ebbôl a szempontból - egységesen kezelni
- ôket.
-
- E technika részint jelentôsen csökkenti az alkalmazások méretét - hiszen azokat
- nem kell felkészíteni az összes ismert, de esetleg eltérô programozású egység
- kezelésére - másrészt lehetôséget biztosít a rendszer, az alkalmazások számára
- "láthatatlan" bôvítésére, átalakítására, esetlegesen emulációk közbeiktatására.
- Többek között ennek köszönhetô, hogy még a legújabb SVGA kártyákon és SCSI
- illesztésû merevlemezeken is (nagyrészt) hibátlanul futnak a BIOS rutinokat
- használó olyan alkalmazások is, melyek megalkotásakor még csak
- hajlékonylemezes meghajtók és Hercules illesztôk léteztek. A BIOS rutinok
- használatának azonban ára van. Egyrészt - az absztrakció lényegébôl adódóan -
- elérhetetlenné válnak az egységek specialitásai, másrészt - többek között az elôzô
- következményeként - a BIOS szervzirutinok legtöbbje meglehetôsen lassú a
- közvetlen programozással elérhetô sebességhez képést. Igy minden egyes program
- esetében egyedi mérlegelés tárgyát kell, hogy képezze a BIOS rutinok vagy a
- közvetlen programozás alkalmazásának kérdése. Åltalánosságban elmondható,
- hogy a nem különösebben sebességkritikus feladatok esetén célszerûbb - többek
- közt a kompatibilitás érdekében - a BIOS szervizrutinokra támaszkodni és csak
- akkor a hardver közvetlen programozásához folyamodni , ha a BIOS rutinok
- alkalmazása nem vezet elfogadható sebességhez vagy nem teszi lehetôvé az egység
- által nyújott és az alkalmazás által megkövetelt speciális szolgáltatások elérését.
-
- Az újabb alaplapokon a BIOS általában ún. Flash-EPROM-ban van tárolva. A
- Flash-EPROM elektornikus úton - meglehetôsen gyorsan - törölhetô és újraírható
- memória-egység. Ezen BIOS-ok elônye, hogy idôközben megjelenô újabb
- változataik a ROM modul fizikai kicserlésése helyett egy egyszerû segédprogram
- segítségével betölthetôk.
-
- A RENDSZER INDITÅSÅNAK MENETE
-
- A számítógép bekapcsolása vagy hidegindítása (RESET) után a processzor a
- vezérlést a 0FFFF0h fizikai címre adja. A memória ezen területére a ROM-BIOS
- van betükrözve. A ROM-BIOS POST (Power-On Self Test - bekapcsolási önteszt)
- ezek után a következô mûveleteket végzi el:
-
- letiltja a megszakításokat (köztük az NMI-t is, mert a memóriacellák bitjei
- véletlenszerûen állítódnak be a reset után, és ez azok elérésekor
- 'paritáshibát' okozhat),
- - teszteli a flageket és a CPU egyéb regisztereit,
- - ellenôrzi a ROM-BIOS ellenôrzöösszegét (checksum),
- - engedélyezi a megszakításokat,
- - inicializálja és teszteli a DMA vezérlôt,
- - ellenôrzi a memória elsô 64KB-ját (a megszakítás-vektor táblázat miatt),
- - inicalizálja és teszteli a megszakítás-vezérlôt és beállítja a 10h-17h BIOS
- megszakításokat,
- - rendszer-konfiguárció (megjelenítô, memória, stb) megállapítása,
- - inicalizálja és teszteli a CRT-kontrollert, a video-memóriát és a video-BIOS-t,
- - inicalizálja és teszteli a programozható idôzítôt,
- - inicalizálja, teszteli majd engedélyezi a billentyûzetet,
- - beállítja a hardver megszakítás-vektorokat,
- - memória tesztelése (kivéve, ha a CMOS-ban a reset word értéke 1234h),
- - a C8000h-EFFFFh közti területen ROM-bôvítéseket keres és ha talál elindítja azokat,
- - inicalizálja és teszteli a floppy- és merevlemezes meghajtó(ka)t, ha van(nak),
- - megkeresi és inicializálja a soros és párhuzamos illesztôket,
- - engedélyezi az NMI-t,
- - az elsô hajlékony- vagy merevlemezes meghajtóról megpróbálja betölteni a
- boot-szektort ill. a partíciós táblát,
- - ha ez nem sikerül, akkor egy INT 18h-val megpróbáljani elindítani a ROM-BASIC-et.
-
- Minden teszt megkezdése elôtt a diagnosztikai porta a tesztnek megfelelô kódot ír
- ki. Ez a kód egy 16-bites (word) szám, melynek felsô 8 bitje az egységet azonosítja,
- míg az alsó nyolc bitje a teszt eredményét tartalmazza (00h - ha a teszt sikeres
- volt).
-
- BôVITô ROM-OK
-
- A bôvítôkártyákon elhelyezhetô ROM egységek lehetôségét biztosítanak a BIOS
- rutinjainak az adott egység igényei szerinti kiegészítésére vagy átalakítására. A
- bôvítô ROM-okat a rendszer-BIOS a POST során keresi meg és inicializálja. A
- ROM-ok a C0000h-DFFFFFh memória-tartományban helyezkedhetnek el. Minden
- ROM BIOS egy egységes fejlécet tartalmaz, melynek felépítése a következô:
-
- ROMHEADER Offset Méret Leírás
- 00h 2 AA55h (bovíto ROM szignatúra)
- 02h 1 a ROM blokk hossza 512 bájtos egységekben
- 03h n BIOS program-kód (0003h az inicializációs kód belépési pontja)
-
- A rendszer-BIOS a bôvítéseket az AA55h szignatúra alapján és a megadott
- hosszúságú kód 8 biten vett összegének (összeg modulo 256) 0-val való
- összehasonlításával ismeri fel. Ha a POST rutin érvényes fejlécet talál a megadott
- tartományban, akkor egy távoli ugrással (call far) a belépési pontra adja a vezérlést.
- A bôvítô-BIOS inicalizációs rutinja az egység alaphelyzetbe állítása és a megfelelô
- megszakításvektorok esetleges átirányítása után visszaadja a vezérlést a POST
- rutinnak, ami tovább folytatja a bôvítések keresését.
-
- - STING -
- eMail: PC-XUser@IDG.HU, Subject: "RProg rovat"