 Ŀ
 Ŀ
                                                                         
                 Yuvarlak Ke  VESA kartlar II                        
                                                                         
 ٳ
  PS 26  Eyll'95                                       Alex PAMIR        
 



         yi gnler sevgili Yuvarlak Ke okurlar. Alemin en matrak
  kelerinden biri olan yuvarlak ke bu ay da sizlerle.
  Bu ay geen aydan kalan VESA konusunu incelemeye devam edeceiz.


         Geen ay grdmz kadaryla artk bilgisayarmzdaki Super VGA
  kartnn VESA uyumunu ve destekledii modlar tesbit etmeyi rendik.
  Bu ay da bu modlarda ekrana nasl erieceimizi rnekli bir ekilde
  greceiz. Listemizdeki ekran modlarndan istediimiz birini setiimizde,
  ekran bu mod'da amadan nce kontrol etmemiz gereken bir nokta daha var.
  Bu da monitrmzn bu ekran modunu gsterip gstermeyeceidir.
  Aslnda bunu bilgisayar alrken satcnn bize verdii bilgiden yahut
  monitrn kullanm klavuzundan renebiliriz ama bu bilgilere ben pek
  gvenmem. Bunu yazlm olarak anlamann yolu ise programmzdaki
  modbuf.modeflag baytnn dier bir bitini kontrol etmekle olur (0.bit).
  Bu kontrol yapldktan sonra VESA BIOS'unun 02H numaral fonksiyonunu
  ararak istediimiz modda ekran aabiliriz.

 ķ
    Interrupt 10h  Function 4Fh                                        
                                                                       
        AH : 4Fh                                                       
        AL : 02h                                                       
        BX : istenen modun numaras (15. biti 1 olursa Video RAM'de    
             eskiden bulunan grafik datas silinmez)                   
 ͼ

  Modu atktan sonra mutlaka bunu test etmemiz gerekir. Bunu da ya interrupt
  dn AH'a ve AL'a bakarak yapabiliriz, ki AH'da 00h ve AL'da 4Fh varsa
  tamam demektir; veya VESA BIOS'un 03h numaral fonksiyonunu kullarak
  ekrann u anki modunu renip bizim istediimizle karlatrrz.
  03h fonksiyonu yledir:

 ķ
    Interrupt 10h  Function 4Fh                                          
        AH : 4Fh                                                         
        AL : 03h                                                         
                                                                         
    Dnte:                                                             
        BX : istenen modun numaras                                      
                                                                         
 ͼ

  Modumuz artk hazr olduuna gre artk tek yapmamz gereken ekran
  hafzasna bilgi yazp bunu ekranda grmek. Fakat kazn ayai... pardon
  VESA'nn hafzas yle deil. Bildiiniz gibi SVGA kartlarnn 2MB, 4MB
  gibi 256 KB 'dan daha byk hafzalar olabiliyor. Fakat bizim hafzada
  ekran adresleyebildiimiz blge sadece A000:0000'dan B000:0000'a kadar olan
  64KB'lk blge. Ekran bykl 64KB'dan az hafza gerektiren modlar iin
  fazla bir sorun yok. En fazla sayfa deitirme problemi kabilir. Fakat
  640x480x256 gibi byk modlar iin biz ne yapacaz. Bunun zm, bizim
  64KB'lk blgeyi ekran hafzasna karlkl ilikilendirmek. Bylece biz
  bilgisayara, ben kendi hafza blgemi ekran hafzasnn u u blgesi
  olarak kullanmak istiyorum dedikten sonra o blgeyi kullanmakla sorun
  hallediliyor. Buna "page framing" ad veriliyor ve zellikle EMS hafza
  adreslemesinde kullanlyor. Bu sistemin tek dezavantaj tek komutta en
  fazla erevemiz kadar bilgi gnderebilmemiz. Bu yzden 64K'dan byk
  ekranlar ancak birka seferde izilebiliyor. VESA'da bu ereveye "Access
  window" yani eriim penceresi deniyor. Bu eriim penceresini kullanmak
  iin ise 05h numaral alt fonksiyon kullanlyor. Kullanmdaki bir nemli
  zellik de pencerenin hareket oran. Bu orann katlar olarak belirlenen
  adres deiikliiyle pencerenin Video RAM'daki yeri belirleniyor.
  Yani eer oran 1K ise DX registerna konulan 128 deeri ekran hafzasnn
  128K'dan balamas gerektii anlamna geliyor. Bir de baz kartlarda iki
  eriim penceresi olabiliyor; biri yazmak dieri okumak iin. O an yaplacak
  ileme gre o numaral pencerenin yerinin deimesi gerekir. Hangi
  pencerenin ne ie yarad da o pencerenin pencere bilgileri word'nn
  bitlerine baklarak anlalr. 0. bit, pencerenin olup olmadn (1= var),
  1. bit okunabilir olup olmadn (1=okunabilir), 2. bit yazlabilir olup
  olmadn (1=yazlabilir) gsterir. Deerler yle:

 ķ
                                                                           
     Interrupt 10h  Function 4Fh                                           
                                                                           
         AH : 4Fh                                                          
         AL : 05h                                                          
         BH : 00h                                                          
         BL : eriim penceresi numaras (0 veya 1)                         
         DX : eriim blgesi adresi (hareket orani ile arlp asl degeri 
                                     oluturur)                            
 ͼ

        Elimizdeki bu bilgilerle VESA modundaki bir SVGA karta nasl eriim
  yaplacan geen ayki rnein gelitirilmii olan bu ayki rnekte
  grebilirsiniz.

  Gelecek ay buluuncaya kadar size iyi programlamalar.