Bu sayfadaki yazılar
Sayfanın metni
Sayfa 52
Klavyeyle gezinmek için ← ve → tuşları.
Sayfa 53
Geçen sayımızda başladığımız “Bir Makinede Üç Bilgisayar: Commodore 128“ adlı yazımıza devam ediyoruz. Yazımızın bu bölümünde Commodore 128'in bazı özelliklerinin yanısıra BASİC 7.0 ile ilgili bilgiler de vermeye çalışacağız.
Daha büyük programları değişken belleğinin zararına olmak üzere oluşturabilmek mümkün değildir. Bank (bölüm) başına 64 KByte'ın tümünü de kullanamayız, çünkü her iki bankta Zeropage için, Stack için ve ekran belleği için belirli bir alan ayrılmıştır. Bu alan $0400'e kadar uzanır. Bir Basic programı işlemekteyken, Memory Unit (MMU— BYB Bellek Yönetim Birimi) ,hangi bankaya erişilmesi gerektiğini düzenler. Bellek Yönetim Birimi bir değişkenin mi, yoksa bir komutun mu işleneceğinin bilgisini Basic çeviricisinden alır. Sistem için ayrılmış olan SO000'- dan $0400 alanına yine dönelim. Bunun özelliği, bu alanda yalnızca O bankının olabilmesidir. 1 bank orada bulunamaz. Böylece işlemcinin daima aynı banka erişmesi ve dolayısıyla 4 bankında O bankındakinden farklı bir sack'in bulunması nedeniyle durmaması garanti edilmiştir. Ek olarak, kullanıcı kendine ait 4 ilâ 46 KByte'lik alanı, bellek başlangıcında veya sonunda ayırabilir (şema 2). Bu alan, bankların değiştirilmesi ve aynı verilerin kullanıma hazır olması gerektiğinde, kullanıcı tarafından kendi makine dili rutinlerinde stack veya bellek olarak kullanılabilir. Bellek Yönetim Birimi, alan seçimi için RAM Konfigürasyon Register'ini (RCR) kullanır. RCR'nin O. ve 4. bitleri, O ve 1 banklarının ortak bellek alanını gösterir: 1, 4, 8 veya 16 KByte. Her iki bit de O ise, ortak bellek 1 KByte'lıktır. her iki bitin de 4 olması durumunda ise ortak bellek 16 KByte olur. RCR'nin 2. ve 3. bitleri, alan durumunu belirtir. 2. bit doluysa, ortak alan belleğin alt sınırında, 3. bit doluysa üst sınırındadır. Her iki bitin de olması durumunda ise, belleğin hem başlangıcında, hem de sonunda verili alan ayrılmıştır. Yani bu alan o sırada kullanılmakta olan her programa konulabilir. Daha önce de belirtildiği gibi, ortak bellek daima O bankında bulunur. Fakat Bellek Yönetim Birimi (Memory Management Unit-MMU), RCR aracılığıyla, değişikliğin programda açıkça belirtilmesi gerekmeksizin, hangi adreste bankın değiştirilmesi gerektiğini bilir.
Organizatör - Bellek Yönetim Birimi (MMU)
Bellek Yönetim Birimi, belleğin yapısını yönetir. Hangi RAM bankının aktif durumda olduğunu veya bir sonraki çevrimde aktif du- TuMA geçmesi gerektiğini belirler. BYB'nin en önemli registerleri, daha önce adı geçen RCR ve Configuration Register'dir (CR). CR, Commodore 128'in ROM, RAM ve GİÇ konfigürasyonlarını denetler. Bu registerin adresi G/Ç alanında $DSOO, Kernal alanında ise S$FFOO'dır. SD500O'deki CR yalnızca GİÇ erişimlerinde kullanılır. BYB, registeri kendisi ayarlar. Hiçbir GİÇ erişimi gerçekleşmediği takdirde, CR (tüm G/Ç rutinleriyle birlikte), bellek haritasında (Memory Map) yer almaz. SFFOO'daki CR ise daima bellek haritasında bulunur. CR'nin O biti, 128 modunda iş-