Commodore sayı 7, sayfa 62
Sayfanın metni

Sayfa 62

VIA) ve karakter ROM'u kapsıyor. Her iki ROM alanı, yani BASIC ve C 64 modunun işletim sistemi, 128'de 16 KByte'lık bir ROM elemanına yerleştirilmiş durumda. C 64'te ise durum bunun tam tersi. BASIC ve işletim sistemi, ayrı ayrı 8 KByte'lık ROM'larda bulunuyor. 128 modunda dağılım daha da karmaşık. Çünkü çok daha kapsamlı bir BASIC'in (7.0 versiyonu) ve ek bir 80 karakter üreticisinin varlığı söz konusu. BASIC ROM'u her biri 16 KByte'lık iki kısma ayrılıyor: Bellek haritasında BASIC 4. kısım ve 2. kısım (şema 1 ve 2). Birinci kısım $4000 ila $7FFF adresleri arasında, ikinci kısım ise $8000 ila $BFFF arasında yer alıyor. BASIC ROM, toplam olarak 32 KByte. Bir karşılaştırma yapılacak olursa, C 64'ün 2.0 BASIC versiyonu yalnızca 8 KByte uzunluğunda. 128'in işletim sistemi (Kernal), aynen C 64'te olduğu gibi, $E000 ve $FFFF adresleri arasında bulunuyor. İşletim sistemi bir monitör programı içeriyor. 40/80 karakter üreticisinin rutinleri, $C000'dan $CFFF'e kadar olan alanda bulunuyor.

BASIC programları için 128'de C 64'e göre 81.5 KByte daha fazla yer var. Bunu sağlayan, 64 KByte'lık iki RAM-Bank'ı arasında gerçekleştirilen Bank-Switching.

Bank-Switching

Nedir?

Tüm 65xx'lerde ve 8502'de olduğu gibi, 16 adres hattına sahip bir işlemciyle, 2 üzeri 16=65536 bellek hücresinden daha fazla belleği (64 KByte) doğrudan adreslemek mümkün değildir. Eğer 64 KByte'dan daha çok belleğe sahip olmak istenirse, tek bir olasılık vardır. O da, Bank-Switching adı verilen farklı bellek yönetim sistemini kullanmaktır. Bank-Switching, çalışılan bellek alanını değiştirme gibi bir anlam taşır. Commodore 128'in 128 KByte'lık belleği, bu amaçla her biri 64 KByte'lık iki kısma ayrılır. Bellek yönetim birimi (Memory Management Unit-MMU) olarak adlandırılan birim, işlemcinin 64 KByte'lık bellek bankalarını dönüşlü olarak “görmesini” sağlar. Adından da anlaşıldığı gibi, bu devre bellek adreslenmesini yönetir. MMU, işlemcinin hangi RAM-Bank'a bakması gerektiğini, yani okuma/yazma erişimlerinin belleğin neresinde gerçekleşmesi gerektiğini belirler. Aslında görevi bununla sınırlı değildir. MMU, ROM konfigürasyonunu da belirler, yani işlemciye komutları hangi ROM'dan -Kernal'dan veya bir ek kartın EPROM'undan- alacağını bildirir. MMU, üzerinde hiçbir değişiklik yapılamayacak ölü bir eleman değildir. Aksine, bu elemanla gerçekleştirilebilecek bir sürü fikir akla gelmektedir. Örneğin, birden fazla Bank'a, farklı Bank'larda bulunan birden çok program bölünen, Interrupt tarafından yönetilen bir kilit, MMU ile gerçekleştirilebilir. Commodore 128'de BASIC belleği ikiye bölünmüş olarak yönetilir. 0 RAM-Bank'ı (64 KByte) BASIC programlarına, 1 RAM-Bank'ı BASIC değişkenlerine ayrılmıştır. BASIC programcısı açısından bunun anlamı, program ve değişkenler için her biri yaklaşık 60'ar KByte'lık belleğin bulunmasıdır.

bir RGB ve bir kompozit monitörle. Solda program, sağda ise bununla üretilen grafik.

(DEVAM EDECEK)

Klavyeyle gezinmek için ← ve → tuşları.