C-64'ün kapıları

C-64

64'er'den Çeviren Ziya BAYMAN

Bilgisayarınıza program modülleri mi bağlamak istiyorsunuz? Bir modemi mi çalıştırmak istiyorsunuz? Ya da bir alarm sistemini bilgisayar üzerinden kullanmak mı istiyorsunuz? Bu işler için Expansion ya da User Port'u kullanmak zorundasınız. Tabii ki yukarıda saydıklarımız, bu portlar aracılığıyla yapabileceğiniz bir sürü işten yalnızca üçü. Ama bunları tipik örnekler oldukları için seçtik. Örneğin modem ya da alarm sistemi User Port'a (Resim 1) program modülleri ise Expansion Port'a (Resim 2) takılır. Önce User Port'u inceleyelim.

ÇOK YÖNLÜ BİR PORT

User Port, çok yönlü kullanabileceğiniz bir bağlantı noktası. Çoğunlukla modemler ya da akustik coupler'lar için kullanılan RS232 bağlantısı, User Port üzerinden ölçme ve yönetme işlerini de gerçekleştirebilir. Bağlantı yerini biraz daha yakından inceleyelim. Resim 3'te User Port'un bağlantı pozisyonları veriliyor. User Port'un alt ve üstteki bağlantılarının farklı işlevleri olduğunu görüyorsunuz. Bu nedenle asla bir timsah ya da benzeri bir mandalı buraya tutturmaya kalkışmamalısınız! Daha önce de belirttiğimiz gibi User Port çok farklı işler için kullanılabilir. Bunu sağlayan, User Port'ta bulunan ve sizin istediğiniz gibi programlayabileceğiniz 8 bitlik paralel porttur (Resim 3: PB0-PB7). Bunun anlamı, paralel port üzerinden verileri okuyabilmeniz ya da çıkışını alabilmenizdir. Burada enteresan olan, sekiz hattın herbiri için veri akışını tek tek belirleyebilmenizdir. Hangi hattın giriş hangisinin çıkış için kullanılacağını, veri akışı sicilinden verebilirsiniz. Bu sicil için kullanılan “DDR” kısaltması, İngilizce “Data Direction Register” kelimelerinin baş harflerinden oluşmaktadır. Peki, bir sicille sekiz hat nasıl kullanılabiliyor? Bunu anlayabilmek için, ikili ve onlu sayılar arasındaki ilişkiyi biraz incelememiz gerekecek.

USER PORT PROGRAMLANABİLİYOR

Bilgisayarın çalışırken kullandığı ikili sayı sistemi, 0 ve 1 olmak üzere, yalnızca iki sayıyı tanır. Bu sistemde 0 ya da 1 içeren bir bilgi birimi, “bit” olarak adlandırılır. Bu, bilgisayar teknolojisinde kullanılan en küçük bilgi birimidir. Tek bir bitle, ondalık sayı olarak 0 ve 1 gösterilebilir. Buna ikinci bir biti eklersek, 0'dan 3'e kadarki ondalık sayıları gösterebiliriz. Üçün gösterilebilmesi için, her iki bitin de birer 1 içermesi gerekir (1*2^1 + 1*2^0 = 2+1=3). Sekiz bitle 0'dan 255'e kadarki ondalık sayılar gösterilebilir. Resim 4'te örnek olarak 223 ondalık sayısının ikili sistemde nasıl parçalandığını görebilirsiniz. Ayrıca bilgisayar teknolojisinde sekiz bitin bir araya gelmesiyle ikinci en küçük bilgi birimi olan “Byte” oluşur. Commodore 64'ünüzün bellek kapasitesi 65536 Byte'tır. 56579 sayılı byte, yukarıda bahsedilen veri akış sicilidir. Buradaki 0 bitine bir 1 koyarsanız, buna ait olan PB0 hattı çıkışa açılmış olur. Makineyi açtıktan sonra aşağıdaki satırı yazarak DDR'i bir kez daha deneyin:

PRİNT PEEK (56579)

Ekranda bir 0'ın görüntülenmesi gerekir, çünkü bilgisayarın açılması anında PB0'den PB7'ye kadarki port hatları giriş olarak açılmıştır. Yukarıdaki örnekteki (Resim 4) sayımızı kullanırsak,

POKE 56579,223

satırıyla DDR, 11011111 şeklinde bir bit dizisi içerir. Böylece tüm PB hatları, PB5 hattına kadar çıkış olarak açılmış olur. 56577 bellek hücresindeki DPB (Data Port B) sicili üzerinden tek tek çıkışları, aynen DDR'de olduğu gibi 1 ya da 0 yapabilirsiniz. POKE 56577,222 ile oraya 11011110 şeklinde bir bit dizisi girebilirsiniz. Böylece PB0'a kadar tüm çıkışlar 1 olur. Bunun anlamı ise, D pininden H pinine kadar (PB1-PB4), K pininde (PB6) ve L pininde (PB7) +5 Volt akım varken, C (PB0) pininde 0 Volt bulunur. Bu durumda 5 bitine 0 verilmiştir. DDR'deki karşılık gelen hattın daha önce giriş olarak açılmış olması nedeniyle, bilgisayar DPB sicilinin 5. bitini görmezden gelir. Aynı şekilde

POKE 56577,254

yazarak, 11111110 şeklinde bir bit dizisi yaratabilirsiniz.

USER PORT'U PROGRAMLARKEN DİKKAT EDİLMESİ GEREKEN HUSUSLAR

User Port'la denemeler yapmaya başlıyorsanız, son derece dikkatli davranmanız gerekir. Çünkü daha önce de belirttiğimiz gibi, entegre bir eleman olan CIA (Control Interface Adapter)'in 14 yapılmış olan çıkışlarında 4-5 Volt akım bulunmaktadır. Bu uçları yanlışlıkla şasiyle bağlarsanız, CIA bu davranışınızdan pek hoşlanmayacaktır. Sonuçta bilgisayarınızı büyük bir olasılıkla bir tamir servisine götürmek zorunda kalabilirsiniz. Yani, çok dikkatli olun. Eğer portu giriş olarak kullanıyorsanız, tek tek hatları denemek ilgi çekici olabilir. Port sicili yardımıyla bunu gerçekleştirebilirsiniz.

PRINT PEEK (56577)

yazdığınız takdirde, DDRB sicilinin değeri ekranda görünecektir. Bilgisayarınızı yeniden açıp DDRB sicilini deneyin. Bütün bitlerin 1 olduğunu göreceksiniz. Bu nedenle B portunun tüm hatlarında 5 Volt bulunacaktır.

USER PORT'LA DENEMELER

Hatırlayacağınız gibi, makinenin açılmasından sonra B portunun tüm hatları giriş olarak açılmış olmakta, çıkışların aksine şimdi, karşılık gelen hatları şasiyle bağlayarak, tek tek her biti 0 yapabilirsiniz. Peki, tek bir bitin DDRB sicili tarafından denetlenmesi nasıl gerçekleşiyor? Bilmecenin çözümü, “AND-bağlantısı”.

Örneğin, 7. biti denetlemek için

PRINT PEEK (56577) AND 128

satırını girmelisiniz. Sonuç 128 ise, DDRB sicilinin 7. biti 1 içeriyor demektir. Sonuç 0 ise, 7. bit de 0 demektir. Aynı şekilde 6. biti

PRİNT PEEK (566577) AND 64

satırıyla denetleyebilirsiniz. Sonuç 64 ise bitin içeriği 1, sonuç 0 ise bitin içeriği 0'dır. Aynı yöntemle diğer tüm bitler de denetlenebilir. AND bağlantısının neler yaptığını, ileriki sayılarımızda betimlemeye çalışacağız.

2SZ12 NIS DN

Yukarıda verilen BASIC komutlarını programların içine yerleştirdiğiniz takdirde, bir sürü yönetme sürecini de işletebilmeniz mümkün. Alarm sistemleri ya da yanıp sönen lamba dizileri ve benzeri bir sürü şeyi çalıştırabilirsiniz. Dikkat edeceğiniz konu, çıkışlardan yalnızca sınırlı bir düzeyde akım alabileceğinizdir. Aslında bu akım her hatta ön akımlı birer ışıklı diyot bağlamaya yeterlidir, fakat daha kapsamlı bağlantılar için röleler ya da güçlendiriciler kullanmanız gerekir.

Tabii ki, User Port'u verilerin uzağa iletilmesi için de kullanabilirsiniz, örneğin bir akustik koppler bağlayabilirsiniz. Önümüzdeki sayılarda akustik koppler ya da modemle veri iletimi konusunda da yazılar yayınlayacağız.

C64 KARTUŞLARI NASIL TANIYOR?

Basic ya da Soccer gibi kartuşlar C64'ün Expansion Port'una takılır. Makine açıldığı anda program kullanıma hazırdır. Peki, bilgisayar kendisine bir kartuş takılmış olduğunu nasıl anlar? Bunu anlayabilmek için Expansion Port'un bazı bağlantılarını irdelememiz gerekiyor.

Resim 5'te Expansion Port'un bağlantılarının arkadan nasıl göründüğü veriliyor. Açılış sırasında kartuş, EXROM (Pin 9) hattını şasiye (Pin 1, 2, A ve B) bağlıyor. Bu durumda C64'ün belleğinden 9 KByte'lık (9216 bit) bir bellek alanı alınmış oluyor. Bu alan 32768 adresinden 40956 adresine kadar olan bölümü kapsıyor. Takılmış olan kartuşun bellek içeriği bu alanda yerleşiyor. Bilgisayarınız yine de bu noktada bir programın başladığını henüz bilemiyor. Bu bilgiyi ancak “Reset-rutini” olarak adlandırılan yordamın harekete geçmesinden sonra algılayabiliyor. Bilgisayar bu sırada 32772'den 32776'ya kadarki bellek hücrelerini kontrol eder. Eğer orada “CBM80” ifadesine rastlarsa, kendisine bir kartuş takılmış olduğunu anlar. Eğer işgal edilmiş olan bellek alanını “CBM80” için ayrılan bellek hücreleriyle karşılaştırırsanız, metnin kartuşta içerildiğini görürsünüz. Eğer kartuş yoksa, karşılık gelen bellek hücreleri makine açıldığında boş olur ve bilgisayar reset rutinini devreye sokar. “CBM80” ifadesini bulduğu takdirde ise, işgal edilmiş ilk iki bellek hücresi olan 32768 ve 32769'dan kartuş programının burada saklanmış olan başlangıç adresini alır ve oraya atlar. Böylece makine açıldığı anda kartuştaki program işlemeye başlar. Tabii ki, her reset işleminden sonra kartuş takılı olup olmadığının kontrolü yinelenir. Bir reset işlemi gerçekleştirmenin en kolay yolu, User Port'taki 3. (Reset) ve 1. (Şasi) uçları birleştirmektir. Bunu bir switch aracılığıyla yapabilirsiniz. Ama bunu yaparken bilgisayarını almış olduğunuz firmanın garanti koşullarını göz ardı etmeyin.

PÜFNOKTASI