Commodore sayı 38, sayfa 53

Bu sayfadaki yazılar

Sayfanın metni

Sayfa 53

RESİM 4; PADDLE ATEŞ TUŞU İÇİN GEREKLİ REGİSTERLER.

Bağlantı Pin Bit Bilgi yön Port registeri | registeri JOY3 | 56323 | Sol 56323 | 56321 Bağlantı Pin| Bit | Bilgi yön Port registeri | registeri JOY3 56322 | 56320 Sol| 56322 5632' Bağlantı Bit| Bilgi yön Port | registeri | registeri Sağl 7 | Sol JOY 2 8 geçerli olduğunu unutmayın, Diğer taraftan Basic'te yazılmış olan program gerçek bir alarm sistemi için çok basit kalmaktadır. Örneğin temas bir saniye sürerse sadece bir saniye alarm verilecektir ve bu birçok durumda yetersiz kalır.

Şifreli Kilit:

Alarm sisteminin ardından yeni bir program örneğine geçebiliriz. “Şifreli Kilit” adlı programı yazın ve RUN edin. İlkinde olduğu gibi PBO çıkış, geri kalan hatlar da giriş olarak kullanılmaktadır. Yine tüm işlemler sırasında en ufak bir hatanın bile bilgisayarınıza önemli hasarlar verdirebileceğini düşünerek hareket edin. Şimdi gelelim programın nasıl işlediğine. PB2'den PB7'ye kadar olan veri hatlarına altı basamaklı bir şifre girmelisiniz. Eğer bu şifreyi doğru girerseniz, PBO high konumunu alır, yani dışarıya 4 5V gerilim verir. Bu gerilimi kullanarak isterseniz bir kapıyı açtırılabilir veya gizli bir cihazın çalışması sağlanabilir. Bu kumanda işlemlerinin nasıl gerçekleşeceğini daha ileride göreceğiz. PBI1 hattı üzerinden şifre girişi baştan başlatılır (herhangi bir hatada veya bir kez kilit açıldıktan sonra). Girişler sırasında her temasta ekrandan bir uyarı sinyali duyulur. 250, ve 260. satırlarda bilgisayara iki değişken belirtilir. Bunların ne anlama geldiğini kısaca belirtmek istiyorum. CL, girilecek olan şifrenin uzunluğunu yani kaç basamaklı olduğunu içermektedir. CI$ değişkeninde ise şifrenin kendisi saklıdır. Bu iki değişkeni istediğiniz gibi değiştirebilirsiniz. Programda bunlar özellikle akılda kolay kalacak şekilde seçilmiş- Ur. C2$'da giriş hatlarına GND'yi değdirerek yazdığınız şifre oluşturulur.

Bu veri giriş sisteminin en önemli avantajı, bilgisayarın tamamen ayrı bir yerde örneğin başka bir odada olabilmesidir. Yani bu kilit tamamen klavyeden bağımsız olarak çalışmaktadır. Böylelikle bilgisayara dışarıdan bir müdahale yapılamadığı için, şifrenin program dökümünden elde edilmesi imkânsız hale gelir. Program REM komutları ile yeteri kadar açıklık kazanmıştır. Bu noktada sadece bir sinyal verildiğinde programın RUN ile baştan çalıştığını söylemek yeterlidir sanırım. Bu programda da her şey en basit hali ile ele alınmıştır. Diğer bir deyişle Basic bilgisine güvenen herkes bunu rahatça daha da geliştirebilir. User Port'ta neler olduğunu gördükten sonra bir adım geriye döneceğiz. Yazının ilk bölümlerinde cevapsız kalan bazı soruları şimdi cevaplamak istiyorum. İlk olarak bilgisayarın Joystick ile veri girişini göreceğiz. Sanırım şu ana kadar Joystick ve User Port programlanması arasında bir benzerlik olduğunu farketmişsinizdir. İkisinde de öncelikle bazı registerler açılmalı ve elde edilen O ve 1 rakkamları doğru bir şekilde değerlendirilmelidir. Joystick Portu'nda da Bilgi Yön Registeri'nde olduğu gibi giriş ve çıkışlar programlanmalıdır. Bildiğiniz gibi Yön Registeri'nin Bit'lerini silersek tüm hatlar giriş haline gelir. Burada eğer tüm Bit'lere | değerini yazarsak ne olur diye bir soru aklınıza takılabilir. Cevap yine aynıdır: Joystick Port'un tüm hatları çıkış konumuna gelir. Bu Port hakkında daha detaylı bilgiyi ilerki satırlarda bulabilirsiniz. Resim 3 buradaki gerekli tüm registerlerin adreslerini göstermektedir. Birçok kişinin merak ettiği diğer bir nokta ise klavye, Joystick, light pen (ışıklı kalem) ve paddle'ın neden daima birbirlerini engellediğidir. Bunun nedeni yukarıda sayılan cihazların hepsinin aynı veri yollarını kullanmasıdır. Böyle bir durumda her seferinde kullanılacak veri cihazı bilgisayara belirtilmelidir. Burada aklınıza ikinci bir soru takılabilir: Neden klavye Joystick Portlarının veri yollarını kullanmaktadır? Klavye aslında satır ve sütunlarda oluşan bir matris aracılığı ile bilgisayara bağlanmıştır. Her bir kesişim noktasında bir tuş bulunmaktadır ve bu tuş basılı olduğu zaman kesişim noktasının iki ucunu birleştirmektedir. İşletim sistemindeki klavyeyi soran rutinler, bir satıra bir sinyal yerleştirmekte ve daha sonra bu sinyalin hangi sütunda ortaya çıktığına bakarak basılan tuşu belirlemektedirler. Eğer hiçbir sinyal ile karşılaşılmazsa bu satırda bir tuşa basılmamış demektir ve sinyal bir sonraki satıra aktarılır. Bu yöntem neden bazı tuşların diğerlerine nazaran üstünlüğü olduğu sorusuna cevap vermektedir. Arka arkaya iki tuşa birden basarsanız, hep aynı tuşun ekranda gösterildiğini görebilirsiniz. Bilgisayarın iç yapısının bir özelliği olarak sinyalleri veren ve enformasyonları okuyan parçaların sayısı sınırlı olduğu için, yukarıda anlatılan satır sütun matrisi Joystick ve diğer veri aletleri ile aynı yolu kullanmaktadır. Bu nedenle genellikle Control Port Registeri'ne bir değer POKE edilirse, klavye işlevini kaybeder, çünkü elde edilen matris sinyalleri doğru bir şekilde yorumlanamamaktadır. Belleğin bazı registerleri devamlı değişmektedir. Buralara her seferinde sinyallerin konumları yazılmaktadır. Bilgisayar için sinyalin nereden geldiği hiçbir önem taşımaz, sadece bulunduğu satır ve sütun kontrol edilir. bu bilgileri örneğin Port 1'e takıbir Joystick hareket ettiğinde, ekranda anlamsız harflerin neden oluştuğunu açıklamaya yeter sanırım. Son olarak Joystick'in ardından Paddle'dan kısaca söz etmeden geçemeyeceğim, zira burada da User Port'ta edindiğimiz programlama bilgilerini kullanacağız. Her şey aslında tamamen aynı: Bellekte Paddle için ayrılmış olan DDR'nin bazı Bit'- lerine O değerini vererek Control Port'u giriş haline getireceğiz. Bundan sonra Port Registeri'ni okuduğumuzda, o Bitlerde elde edeceğimiz O değerleri o hattan giriş yapıldığını gösterecektir. Fakat Paddle'da bu anlatılanlar sadece ateş tuşu için geçerlidir. Resim 4'te C-64'ün iki Control Port'u için gerekli register adreslerini Burada Paddle'lar bilgisayara takılı iken bağlantı kablolarının pozisyonuna göre sağ ve sol diye adlandırılmıştır. Normalde de sağdaki POTX'e, soldaki ise POTY'- ye bağlıdır. Paddle da bilgisayarın içinde Joystick ile aynı veri yollarını kullandığı için klavye ile aynı anda kullanılamaz. Şimdilik bu kadar bilgi yeterlidir sanırım, Gelecek sayıdaki yazıda bugün kısaca değindiğimiz Control Port'larını daha kapsamlı bir şekilde ele alacağız. Ayrıca bir Light Pen'- in nasıl yapıldığını ve nasıl işlediğini de bu yazıda bulabileceksiniz. Bu aylık hoşçakalın...

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