KE *1265,PEEK(53265) OR 64 53270.PEEK(53270) AND 239 Konu İlI: A V'nn içinde 64 K RAM olduğu- 1 İyorsunüz. Ayrıca, 8 K BASBIC, . sistem, 4 K karakter seti ve 4 © Giriş/Çıkış bölgesi vardır. Pek? bu ka- dar çok hafızayı nası! ke *- Siy9 Gelki biliyorsunu merkezi işlem ünit ı 62 cessor'u, topu topu İAT : de bir alana hükmt 24 K ne olacak? İşte bu sorun, haf <anın avnı böl- gesinin aynı anda 22* -& iler için kül- lanılması ile çözülmüştür,. Bunu, bir râfa üstüste konmuş k.taplara benze- tebilirsiniz; amacınıza uygun alan ki- tabi aradani çıkarır, ckür, tekrar ye- rine koyarsınız. Ancak bu, raftaki bel- li bir bölgeyi birkaç kitap için ortak olarak kullanmanıza ecigel olmaz. Tıpkı sizin kilap seçmeniz gibi, C64'ün içinde de bir şeyin hangi ha- fıza tabakasının kullanılacağımı belir- lemesi gerekir, İşte bu işi, | numaralı yazmaç yapar. Yani POKE 1,XXX yaptığınızda, hangi tabakayı kullana- cağınızı belirlersiniz. Önce hangi ad- resler arasının hangi işlere yarayabil- diğini görelim: v ârıann $0000-$7FFF : RAM $8000-$59FFF : a) RAM b) Takılı duran bir kartuş ŞA0O00O-SBFFF :!: a) RAM b) BASIC ROM'u $C0O00-$CFFF : RAM $DOOO-$DFFF : a) RAM b) Karakter seti ROM'u €) Giriş/Çıkış bölgesi SE0O0Ü-SFFEF : a) RAM b) İşletim sistemi ROM'u Gördüğünüz gibi, tüm hafıza RAM olabiliyor. Ayrıca, iki hatta üç deği- şik amaç için ayrı ayrı kullamlabilen bölgeler de var. Yalnız bir yanlış an- lama olmasın! Diyelim ki, $DOO0O- $DEFFE arasını RAM olarak kullanı- yorsunuz. Bu, hafızanın bu hölümü- ne ayrılmış olan diğer görevleri engel- lemez veya önceden varolanı (örneğin Giriş/Çıkış bilgileri) içeriğini silmez. Bilgisayarınızın içinde, her görev için ayrılmış ayrı ayrı chip'ler vardır. Biz, sadece bunların hangisinin o anda ön- celikli olduğunu belirleyebiliyoruz. Şimdi de, demin bahsettiğimiz 1. vazmacın işimize yarayacak Ü-2 numa- rah — "lerini tanıyalım: CÜT O a) İçerik: 1i Bu dürüm, bilgisayarı ilk açtığınız Unlüüdür. Nörinal çalışmalarırn yürü- iülmesini sağlar. Hafıza bölümleri şu gerevleri taşı $0000-57FFF : RAM $8000-$8FFF : RAM veya bilgisayar kartuş takılı açılmışsa, kartuşun içeriği SAD00-SBFFF : BASIC ROM'u $COOO-$VEFE : $DOO0O-$DFFF : Giriş/Çıkış bölgesi SE000-$FFFF : — İşletim sistemi ROM'u bi İçeril(: 10 Eğer BASIC kullanılmayacaksa (örneğin makina dili kullanımı için yer gerekiyorsa) veya BASIC çeviricisin- de bazı düzenlemeler yapılacaksa, BASIC ROM'unun altındaki RAM kullanılabilir. Eğer BASIC'i düzeli- meyi düşünüyorsanız, önceden bütün BASİC çeviricisini altındaki RAM'a kopya etmeniz gerekir. Ancak bu koü- nu, ayrı bir yazı dizisine konu olacak kadar geniş. Yalnız bir uyarı: BİT'le- ri bu hale POKE komutu ile getirme- yin. BASIC, işlemeyi durduracağı için, bilgisayar komutları anlayama- yıp kilitlenecektir. * Hafızamız artık şu şekilde olacak- tır: $0000-57FFF : RAM $8000-4$9FEF : RAM SA000O-$BFFF : RAM $CO00-$CFFF : RAM $DOO0O-$DFFF : Giriş/Çıkış bölgesi S$E000-$FFFF : — İşletim sistemi ROM'u c) İçerik: 01 Bu durum, bilgisiyarın Giriş/Çıkış bölgesi dışındaki tüm RAM hafızası- nin kullanılması demektir. Sadece ma- kina dilinde kullanılabilir. $0000-57FFF : RAM $8000-$9FFF : RAM SA000-5BEFF : RAM $COO0O-$CFFF : RAM $DOO0O-$DFFF : Giriş/Çıkış bölgesi $E000-SFFFF : RAM d) İçerik: 00 Usta programcılar için 64 Kbyte RAM var artık. Tabii ki, bu durumu kullanabilmek için, bilgisayar işletim sistemi yazabilecek kadar bilgiye ih- tiyaç var, $0000-$FFFF : RAM ID BİT 2: Bu bit ile de, $DO00-S$DFFF arasın- daki karakter seti ile Giriş/Çıkış böl- gesi arasında seçim yapmak sözkon" su, Bu bit, 1 olduğu zaman, Giriş/Çı- kış bölgesi işbaşında demektir. Bura- da VİC (görüntü chip'i), SID (ses üre- teci), renk RAM'ı ve diğer kontrol ve haberleşme chip'lerine ait yazmaçlar bulunur: $DOOO-S$D3FF : VIC yazmaçları $D400-$D7FF : SIİD yazmaçları $DE&00-$DBEF : Renk RAM'ı $DCOO-SDCFF : CIA | yazmaçları $DDOO-$DDFF ; CLA 2 yazmaçları $DE00-$DEFF : G/C 0 numaralı bölge $DFOO-$DFFF : G/C | nümaralı Eğer bu bit O olursa, artık kullanı- ci karakter setindeki 4 K'lık bilgiyi okuyabilir. Ancak bu bit'i 0 yapma- dan önce, bilgisayarın saniyede 6Ü ke- re yarattığı kesintileri durdurmak ge- rekir. Bunun için BASIC'de bir PO- KE komutu, makina dilinde de SEI kullanılır. Bu bölgeyle işimiz bittiğin- de ise, tekrar bu bit 1 yapilmalı sonra da kesintiler CLI komutu veya bir başka POKE ile serbest bırakılmalıdiır. Eveeeet... Bu bölümün de sonuna geldik. Özellikle son konunun grafikle alakasını soranlara hemen belirtelim. Grafik bilgilerimizi saklayacağımız hafıza bölümlerini, yukarıda belirtti- ğimiz bit'leri kullanarak, ROM'ların altına saklarımış gizli RAM'lara depo- layacağız. Böylece programlarımızın rahatça çalışabildiği serbest RAM böl- geleri bize kalacak. Şimdilik hoşçakalın... |£