home *** CD-ROM | disk | FTP | other *** search
/ PC-X 1998 March / pcx19_9803.iso / PC-XUSER / PC-XUSER.12 / RPROG / RPROG12.TXT < prev    next >
Encoding:
Text File  |  1997-05-01  |  7.2 KB  |  123 lines

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