Bu sayfadaki yazılar
Sayfanın metni
Sayfa 44
Bilgisayar açıldıktan sonra aşağıdaki tüm bellek alanları okunabilir:
$9FFF: RAM SA000 - $BFFF: ROM $CO0OO - $ÇEFF: RAM - $DFFF: 1/O $E000 - $FFFF :
Bilgisayarın verili bir zamanda neye ulaşacağı belirli etkenlere bağlıdır. Üstelik VIC ve 6510 aynı zamanda başka başka bellek alanlarına ulaşabilirler. (Hatta aynı adreslere, ama biri ROM okurken diğeri RAM'i okur.) Önce 6510'da belleğe ulaşmayı inceledikten sonra VIC'e bakacağız. Grafikle uğraşırken ikisi de önemlidir.
BİR BAYTI OKUMAK
Eğer belli bir adresten bir baytı okuyorsanız, üst üste gelen bölgelerden hangisine ulaşılacağı kararı 6510 data kütüğünün içeriklerine bakılarak verilir. İlk üç bit (0-2) belli bellek alanlarını seçme fonksiyonuna sahiptir. Fonksiyonları şöyledir: A. Bitler 0/1- LORAM/HIRAM: a) Bitler 0/1 - 11: Bu iki bitte 1 iseler, $A000-$BFFF arasındaki okumalar BASIC ROM'a ulaşmayı sağlar. $E000-$FFFF arasında okuma ile kernal ROM'a ulaşılır. Bu normal durum. Eğer bir kartui $8000 spektrumuna yerleştirilirse RAM yerine o çalışır duruma gelir. Bellek konfigürasyonu o zaman şöyle görünür:
$0000 R $7000 M $8000 | kartuş | (ROM) $A000 | BASIC ROOM! $BO0O ŞC000 $C000 $DO0OO | I/O arası $E000 | Kernal ROM $F000
b) Bitler 0/1 — 10 Eğer yalnızca bit | açılırsa, Kartuş ve BASIC ROM kapatılarak onların altında yatan RAM okunacaktır. O zaman ortaya şöyle bir tablo çıkacak-
$0000 R $7000 $8000 A $9000 $A000 $BO00 M $C000 | I/O arası $E000 | Kernal ROM $FO00
Bu konfigürasyon yorumcuyu RAM'e kopyalayarak BASIC'te değişiklik yapmak ve ROM'u kapatıp RAM'i açmak için kullanılabilir. Eğer bir kartuş yerleştirilirse, $8000-$9FFF arasının açma kapamadan önce kaydedilmesi gerektiğini unutmayın, çünkü kartuş ROM'u BASIC ile aynı zamanda kapatılır. Merkezi işlemci 1. kütüğüyle çalışırken dikkatli olun, çünkü onda yapılacak değişiklikler belleğe ulaşım yollarında önemli sonuçlara yol açabilir ve bir hata durumunda bilgisayarınızı yeniden hayata döndürmenin tek yolu onu kapatıp yeniden açmak olabilir. ©) Bitler 0/1 -01: Yalnızca bit O açılırsa, tüm ROM alanı kapanır. $DO00-$DFFF arasındaki 1/O alanı bundan etkilenmez ve değişiklik olmaksızın kontrol edilebilir. Bu şekilde 60K kullanılabilir RAM elde ederiz:
$0000 R $7000 $8000 A $9000 $A000 $BO00 M $C0O00 $DO0OO | 1/O arası $E000 | RAM d) Bitler 0/1 - 00: Eğer iki bit de O ise, tüm RAM açılır. ROM ve 1/O fonksiyonları kullanılamaz. (Buna karşılık VIC ve benzeri çipler kütüklerini hala okuyabilir ve ekran değişmeden kalabilir). Konfigürasyon oldukça basittir:
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 45
$0000 $8000 $9000 $A000 A $BO0O $C0O00O $DOOO $E000 M $FO00
R
Bu I/O arasından ve karakter setinden daha düşük değerdeki RAM'i kullanmanın tek yoludur. B. Bit 2-CHAREN: Bu bit karakter jeneratörünü 6510 tarafından ulaşılabilir hale getirmeye yarar. Böylelikle programcı da ulaşıp değiştirebilir ya da kopyalayabilir.
a) Bit 2-1: Bu bilgisayar belleğinin ($DO00- $DFFF) arasını kontrol eder.. Diğer adresler bundan etkilenmezler. Bu bit normal olarak alır. Açıldığı zaman, $D0O00-$DFFF'deki 4K'lık karakter jeneratörü Yalnızca VIC tarafından okunabilir 1/O adresleri, VIC, SID
(Ses arabirim k'itükleri), CLA kütükleri ve renkli RAM tümüyle 6510'a açıktır. Bu bellek düzenlemesi şu şekildedir (Aşağıda)
b) 2-0 Eğer bu bit temizlenirse, programcı (esasında 6510) karakter seti deposunda bulunanları okuyabilir. Eğer bunu BASIC ile denerseniz, bilgisayarınız bir salise içinde programı uçuracaktır çünkü artık ulaşılır durumda bulunmayan CIA 1'deki zaman mekanizmasını çalıştıran bir interrupt rutini saniyede 60 kere çalışacaktır. Makina dilinde bu rutinin çağırılmasını önlemek için interrupt flag açılmalıdır. daha sonradan CLI ile çalıştırılabilir. Aynı şey kernal ROM'u bit 1'i boşaltarak kapatıldığı zaman da yapılmalıdır. Gelecek ay VIC bellek fonksiyonlarıyla devam edeceğiz.
VIC küt. | SID küt.
Renkli RAM |
$DİB00 | $DFOO
$DCOO | $DDOO
CIA2